(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["buy~course~examDetail~home~mineOrder~study"], {
    "1da1": function(e, t, s) {
        "use strict";
        s.d(t, "a", (function() {
            return i
        }
        ));
        s("d3b7");
        function a(e, t, s, a, i, n, r) {
            try {
                var o = e[n](r)
                  , l = o.value
            } catch (d) {
                return void s(d)
            }
            o.done ? t(l) : Promise.resolve(l).then(a, i)
        }
        function i(e) {
            return function() {
                var t = this
                  , s = arguments;
                return new Promise((function(i, n) {
                    var r = e.apply(t, s);
                    function o(e) {
                        a(r, i, n, o, l, "next", e)
                    }
                    function l(e) {
                        a(r, i, n, o, l, "throw", e)
                    }
                    o(void 0)
                }
                ))
            }
        }
    },
    "96cf": function(e, t, s) {
        var a = function(e) {
            "use strict";
            var t, s = Object.prototype, a = s.hasOwnProperty, i = "function" === typeof Symbol ? Symbol : {}, n = i.iterator || "@@iterator", r = i.asyncIterator || "@@asyncIterator", o = i.toStringTag || "@@toStringTag";
            function l(e, t, s) {
                return Object.defineProperty(e, t, {
                    value: s,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                }),
                e[t]
            }
            try {
                l({}, "")
            } catch (I) {
                l = function(e, t, s) {
                    return e[t] = s
                }
            }
            function d(e, t, s, a) {
                var i = t && t.prototype instanceof g ? t : g
                  , n = Object.create(i.prototype)
                  , r = new k(a || []);
                return n._invoke = C(e, s, r),
                n
            }
            function c(e, t, s) {
                try {
                    return {
                        type: "normal",
                        arg: e.call(t, s)
                    }
                } catch (I) {
                    return {
                        type: "throw",
                        arg: I
                    }
                }
            }
            e.wrap = d;
            var p = "suspendedStart"
              , u = "suspendedYield"
              , h = "executing"
              , m = "completed"
              , f = {};
            function g() {}
            function v() {}
            function b() {}
            var y = {};
            y[n] = function() {
                return this
            }
            ;
            var w = Object.getPrototypeOf
              , x = w && w(w(z([])));
            x && x !== s && a.call(x, n) && (y = x);
            var E = b.prototype = g.prototype = Object.create(y);
            function T(e) {
                ["next", "throw", "return"].forEach((function(t) {
                    l(e, t, (function(e) {
                        return this._invoke(t, e)
                    }
                    ))
                }
                ))
            }
            function S(e, t) {
                function s(i, n, r, o) {
                    var l = c(e[i], e, n);
                    if ("throw" !== l.type) {
                        var d = l.arg
                          , p = d.value;
                        return p && "object" === typeof p && a.call(p, "__await") ? t.resolve(p.__await).then((function(e) {
                            s("next", e, r, o)
                        }
                        ), (function(e) {
                            s("throw", e, r, o)
                        }
                        )) : t.resolve(p).then((function(e) {
                            d.value = e,
                            r(d)
                        }
                        ), (function(e) {
                            return s("throw", e, r, o)
                        }
                        ))
                    }
                    o(l.arg)
                }
                var i;
                function n(e, a) {
                    function n() {
                        return new t((function(t, i) {
                            s(e, a, t, i)
                        }
                        ))
                    }
                    return i = i ? i.then(n, n) : n()
                }
                this._invoke = n
            }
            function C(e, t, s) {
                var a = p;
                return function(i, n) {
                    if (a === h)
                        throw new Error("Generator is already running");
                    if (a === m) {
                        if ("throw" === i)
                            throw n;
                        return L()
                    }
                    s.method = i,
                    s.arg = n;
                    while (1) {
                        var r = s.delegate;
                        if (r) {
                            var o = $(r, s);
                            if (o) {
                                if (o === f)
                                    continue;
                                return o
                            }
                        }
                        if ("next" === s.method)
                            s.sent = s._sent = s.arg;
                        else if ("throw" === s.method) {
                            if (a === p)
                                throw a = m,
                                s.arg;
                            s.dispatchException(s.arg)
                        } else
                            "return" === s.method && s.abrupt("return", s.arg);
                        a = h;
                        var l = c(e, t, s);
                        if ("normal" === l.type) {
                            if (a = s.done ? m : u,
                            l.arg === f)
                                continue;
                            return {
                                value: l.arg,
                                done: s.done
                            }
                        }
                        "throw" === l.type && (a = m,
                        s.method = "throw",
                        s.arg = l.arg)
                    }
                }
            }
            function $(e, s) {
                var a = e.iterator[s.method];
                if (a === t) {
                    if (s.delegate = null,
                    "throw" === s.method) {
                        if (e.iterator["return"] && (s.method = "return",
                        s.arg = t,
                        $(e, s),
                        "throw" === s.method))
                            return f;
                        s.method = "throw",
                        s.arg = new TypeError("The iterator does not provide a 'throw' method")
                    }
                    return f
                }
                var i = c(a, e.iterator, s.arg);
                if ("throw" === i.type)
                    return s.method = "throw",
                    s.arg = i.arg,
                    s.delegate = null,
                    f;
                var n = i.arg;
                return n ? n.done ? (s[e.resultName] = n.value,
                s.next = e.nextLoc,
                "return" !== s.method && (s.method = "next",
                s.arg = t),
                s.delegate = null,
                f) : n : (s.method = "throw",
                s.arg = new TypeError("iterator result is not an object"),
                s.delegate = null,
                f)
            }
            function M(e) {
                var t = {
                    tryLoc: e[0]
                };
                1 in e && (t.catchLoc = e[1]),
                2 in e && (t.finallyLoc = e[2],
                t.afterLoc = e[3]),
                this.tryEntries.push(t)
            }
            function P(e) {
                var t = e.completion || {};
                t.type = "normal",
                delete t.arg,
                e.completion = t
            }
            function k(e) {
                this.tryEntries = [{
                    tryLoc: "root"
                }],
                e.forEach(M, this),
                this.reset(!0)
            }
            function z(e) {
                if (e) {
                    var s = e[n];
                    if (s)
                        return s.call(e);
                    if ("function" === typeof e.next)
                        return e;
                    if (!isNaN(e.length)) {
                        var i = -1
                          , r = function s() {
                            while (++i < e.length)
                                if (a.call(e, i))
                                    return s.value = e[i],
                                    s.done = !1,
                                    s;
                            return s.value = t,
                            s.done = !0,
                            s
                        };
                        return r.next = r
                    }
                }
                return {
                    next: L
                }
            }
            function L() {
                return {
                    value: t,
                    done: !0
                }
            }
            return v.prototype = E.constructor = b,
            b.constructor = v,
            v.displayName = l(b, o, "GeneratorFunction"),
            e.isGeneratorFunction = function(e) {
                var t = "function" === typeof e && e.constructor;
                return !!t && (t === v || "GeneratorFunction" === (t.displayName || t.name))
            }
            ,
            e.mark = function(e) {
                return Object.setPrototypeOf ? Object.setPrototypeOf(e, b) : (e.__proto__ = b,
                l(e, o, "GeneratorFunction")),
                e.prototype = Object.create(E),
                e
            }
            ,
            e.awrap = function(e) {
                return {
                    __await: e
                }
            }
            ,
            T(S.prototype),
            S.prototype[r] = function() {
                return this
            }
            ,
            e.AsyncIterator = S,
            e.async = function(t, s, a, i, n) {
                void 0 === n && (n = Promise);
                var r = new S(d(t, s, a, i),n);
                return e.isGeneratorFunction(s) ? r : r.next().then((function(e) {
                    return e.done ? e.value : r.next()
                }
                ))
            }
            ,
            T(E),
            l(E, o, "Generator"),
            E[n] = function() {
                return this
            }
            ,
            E.toString = function() {
                return "[object Generator]"
            }
            ,
            e.keys = function(e) {
                var t = [];
                for (var s in e)
                    t.push(s);
                return t.reverse(),
                function s() {
                    while (t.length) {
                        var a = t.pop();
                        if (a in e)
                            return s.value = a,
                            s.done = !1,
                            s
                    }
                    return s.done = !0,
                    s
                }
            }
            ,
            e.values = z,
            k.prototype = {
                constructor: k,
                reset: function(e) {
                    if (this.prev = 0,
                    this.next = 0,
                    this.sent = this._sent = t,
                    this.done = !1,
                    this.delegate = null,
                    this.method = "next",
                    this.arg = t,
                    this.tryEntries.forEach(P),
                    !e)
                        for (var s in this)
                            "t" === s.charAt(0) && a.call(this, s) && !isNaN(+s.slice(1)) && (this[s] = t)
                },
                stop: function() {
                    this.done = !0;
                    var e = this.tryEntries[0]
                      , t = e.completion;
                    if ("throw" === t.type)
                        throw t.arg;
                    return this.rval
                },
                dispatchException: function(e) {
                    if (this.done)
                        throw e;
                    var s = this;
                    function i(a, i) {
                        return o.type = "throw",
                        o.arg = e,
                        s.next = a,
                        i && (s.method = "next",
                        s.arg = t),
                        !!i
                    }
                    for (var n = this.tryEntries.length - 1; n >= 0; --n) {
                        var r = this.tryEntries[n]
                          , o = r.completion;
                        if ("root" === r.tryLoc)
                            return i("end");
                        if (r.tryLoc <= this.prev) {
                            var l = a.call(r, "catchLoc")
                              , d = a.call(r, "finallyLoc");
                            if (l && d) {
                                if (this.prev < r.catchLoc)
                                    return i(r.catchLoc, !0);
                                if (this.prev < r.finallyLoc)
                                    return i(r.finallyLoc)
                            } else if (l) {
                                if (this.prev < r.catchLoc)
                                    return i(r.catchLoc, !0)
                            } else {
                                if (!d)
                                    throw new Error("try statement without catch or finally");
                                if (this.prev < r.finallyLoc)
                                    return i(r.finallyLoc)
                            }
                        }
                    }
                },
                abrupt: function(e, t) {
                    for (var s = this.tryEntries.length - 1; s >= 0; --s) {
                        var i = this.tryEntries[s];
                        if (i.tryLoc <= this.prev && a.call(i, "finallyLoc") && this.prev < i.finallyLoc) {
                            var n = i;
                            break
                        }
                    }
                    n && ("break" === e || "continue" === e) && n.tryLoc <= t && t <= n.finallyLoc && (n = null);
                    var r = n ? n.completion : {};
                    return r.type = e,
                    r.arg = t,
                    n ? (this.method = "next",
                    this.next = n.finallyLoc,
                    f) : this.complete(r)
                },
                complete: function(e, t) {
                    if ("throw" === e.type)
                        throw e.arg;
                    return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg,
                    this.method = "return",
                    this.next = "end") : "normal" === e.type && t && (this.next = t),
                    f
                },
                finish: function(e) {
                    for (var t = this.tryEntries.length - 1; t >= 0; --t) {
                        var s = this.tryEntries[t];
                        if (s.finallyLoc === e)
                            return this.complete(s.completion, s.afterLoc),
                            P(s),
                            f
                    }
                },
                catch: function(e) {
                    for (var t = this.tryEntries.length - 1; t >= 0; --t) {
                        var s = this.tryEntries[t];
                        if (s.tryLoc === e) {
                            var a = s.completion;
                            if ("throw" === a.type) {
                                var i = a.arg;
                                P(s)
                            }
                            return i
                        }
                    }
                    throw new Error("illegal catch attempt")
                },
                delegateYield: function(e, s, a) {
                    return this.delegate = {
                        iterator: z(e),
                        resultName: s,
                        nextLoc: a
                    },
                    "next" === this.method && (this.arg = t),
                    f
                }
            },
            e
        }(e.exports);
        try {
            regeneratorRuntime = a
        } catch (i) {
            Function("r", "regeneratorRuntime = r")(a)
        }
    },
    b619: function(e, t, s) {
        "use strict";
        function a(e) {
            return null !== e && "object" === typeof e && "constructor"in e && e.constructor === Object
        }
        function i(e, t) {
            void 0 === e && (e = {}),
            void 0 === t && (t = {}),
            Object.keys(t).forEach((function(s) {
                "undefined" === typeof e[s] ? e[s] = t[s] : a(t[s]) && a(e[s]) && Object.keys(t[s]).length > 0 && i(e[s], t[s])
            }
            ))
        }
        var n = "undefined" !== typeof document ? document : {}
          , r = {
            body: {},
            addEventListener: function() {},
            removeEventListener: function() {},
            activeElement: {
                blur: function() {},
                nodeName: ""
            },
            querySelector: function() {
                return null
            },
            querySelectorAll: function() {
                return []
            },
            getElementById: function() {
                return null
            },
            createEvent: function() {
                return {
                    initEvent: function() {}
                }
            },
            createElement: function() {
                return {
                    children: [],
                    childNodes: [],
                    style: {},
                    setAttribute: function() {},
                    getElementsByTagName: function() {
                        return []
                    }
                }
            },
            createElementNS: function() {
                return {}
            },
            importNode: function() {
                return null
            },
            location: {
                hash: "",
                host: "",
                hostname: "",
                href: "",
                origin: "",
                pathname: "",
                protocol: "",
                search: ""
            }
        };
        i(n, r);
        var o = "undefined" !== typeof window ? window : {}
          , l = {
            document: r,
            navigator: {
                userAgent: ""
            },
            location: {
                hash: "",
                host: "",
                hostname: "",
                href: "",
                origin: "",
                pathname: "",
                protocol: "",
                search: ""
            },
            history: {
                replaceState: function() {},
                pushState: function() {},
                go: function() {},
                back: function() {}
            },
            CustomEvent: function() {
                return this
            },
            addEventListener: function() {},
            removeEventListener: function() {},
            getComputedStyle: function() {
                return {
                    getPropertyValue: function() {
                        return ""
                    }
                }
            },
            Image: function() {},
            Date: function() {},
            screen: {},
            setTimeout: function() {},
            clearTimeout: function() {},
            matchMedia: function() {
                return {}
            }
        };
        i(o, l);
        class d {
            constructor(e) {
                const t = this;
                for (let s = 0; s < e.length; s += 1)
                    t[s] = e[s];
                return t.length = e.length,
                this
            }
        }
        function c(e, t) {
            const s = [];
            let a = 0;
            if (e && !t && e instanceof d)
                return e;
            if (e)
                if ("string" === typeof e) {
                    let i, r;
                    const o = e.trim();
                    if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) {
                        let e = "div";
                        for (0 === o.indexOf("<li") && (e = "ul"),
                        0 === o.indexOf("<tr") && (e = "tbody"),
                        0 !== o.indexOf("<td") && 0 !== o.indexOf("<th") || (e = "tr"),
                        0 === o.indexOf("<tbody") && (e = "table"),
                        0 === o.indexOf("<option") && (e = "select"),
                        r = n.createElement(e),
                        r.innerHTML = o,
                        a = 0; a < r.childNodes.length; a += 1)
                            s.push(r.childNodes[a])
                    } else
                        for (i = t || "#" !== e[0] || e.match(/[ .<>:~]/) ? (t || n).querySelectorAll(e.trim()) : [n.getElementById(e.trim().split("#")[1])],
                        a = 0; a < i.length; a += 1)
                            i[a] && s.push(i[a])
                } else if (e.nodeType || e === o || e === n)
                    s.push(e);
                else if (e.length > 0 && e[0].nodeType)
                    for (a = 0; a < e.length; a += 1)
                        s.push(e[a]);
            return new d(s)
        }
        function p(e) {
            const t = [];
            for (let s = 0; s < e.length; s += 1)
                -1 === t.indexOf(e[s]) && t.push(e[s]);
            return t
        }
        function u(e) {
            if ("undefined" === typeof e)
                return this;
            const t = e.split(" ");
            for (let s = 0; s < t.length; s += 1)
                for (let e = 0; e < this.length; e += 1)
                    "undefined" !== typeof this[e] && "undefined" !== typeof this[e].classList && this[e].classList.add(t[s]);
            return this
        }
        function h(e) {
            const t = e.split(" ");
            for (let s = 0; s < t.length; s += 1)
                for (let e = 0; e < this.length; e += 1)
                    "undefined" !== typeof this[e] && "undefined" !== typeof this[e].classList && this[e].classList.remove(t[s]);
            return this
        }
        function m(e) {
            return !!this[0] && this[0].classList.contains(e)
        }
        function f(e) {
            const t = e.split(" ");
            for (let s = 0; s < t.length; s += 1)
                for (let e = 0; e < this.length; e += 1)
                    "undefined" !== typeof this[e] && "undefined" !== typeof this[e].classList && this[e].classList.toggle(t[s]);
            return this
        }
        function g(e, t) {
            if (1 === arguments.length && "string" === typeof e)
                return this[0] ? this[0].getAttribute(e) : void 0;
            for (let s = 0; s < this.length; s += 1)
                if (2 === arguments.length)
                    this[s].setAttribute(e, t);
                else
                    for (const t in e)
                        this[s][t] = e[t],
                        this[s].setAttribute(t, e[t]);
            return this
        }
        function v(e) {
            for (let t = 0; t < this.length; t += 1)
                this[t].removeAttribute(e);
            return this
        }
        function b(e, t) {
            let s;
            if ("undefined" !== typeof t) {
                for (let a = 0; a < this.length; a += 1)
                    s = this[a],
                    s.dom7ElementDataStorage || (s.dom7ElementDataStorage = {}),
                    s.dom7ElementDataStorage[e] = t;
                return this
            }
            if (s = this[0],
            s) {
                if (s.dom7ElementDataStorage && e in s.dom7ElementDataStorage)
                    return s.dom7ElementDataStorage[e];
                const t = s.getAttribute("data-" + e);
                return t || void 0
            }
        }
        function y(e) {
            for (let t = 0; t < this.length; t += 1) {
                const s = this[t].style;
                s.webkitTransform = e,
                s.transform = e
            }
            return this
        }
        function w(e) {
            "string" !== typeof e && (e += "ms");
            for (let t = 0; t < this.length; t += 1) {
                const s = this[t].style;
                s.webkitTransitionDuration = e,
                s.transitionDuration = e
            }
            return this
        }
        function x(...e) {
            let[t,s,a,i] = e;
            function n(e) {
                const t = e.target;
                if (!t)
                    return;
                const i = e.target.dom7EventData || [];
                if (i.indexOf(e) < 0 && i.unshift(e),
                c(t).is(s))
                    a.apply(t, i);
                else {
                    const e = c(t).parents();
                    for (let t = 0; t < e.length; t += 1)
                        c(e[t]).is(s) && a.apply(e[t], i)
                }
            }
            function r(e) {
                const t = e && e.target && e.target.dom7EventData || [];
                t.indexOf(e) < 0 && t.unshift(e),
                a.apply(this, t)
            }
            "function" === typeof e[1] && ([t,a,i] = e,
            s = void 0),
            i || (i = !1);
            const o = t.split(" ");
            let l;
            for (let d = 0; d < this.length; d += 1) {
                const e = this[d];
                if (s)
                    for (l = 0; l < o.length; l += 1) {
                        const t = o[l];
                        e.dom7LiveListeners || (e.dom7LiveListeners = {}),
                        e.dom7LiveListeners[t] || (e.dom7LiveListeners[t] = []),
                        e.dom7LiveListeners[t].push({
                            listener: a,
                            proxyListener: n
                        }),
                        e.addEventListener(t, n, i)
                    }
                else
                    for (l = 0; l < o.length; l += 1) {
                        const t = o[l];
                        e.dom7Listeners || (e.dom7Listeners = {}),
                        e.dom7Listeners[t] || (e.dom7Listeners[t] = []),
                        e.dom7Listeners[t].push({
                            listener: a,
                            proxyListener: r
                        }),
                        e.addEventListener(t, r, i)
                    }
            }
            return this
        }
        function E(...e) {
            let[t,s,a,i] = e;
            "function" === typeof e[1] && ([t,a,i] = e,
            s = void 0),
            i || (i = !1);
            const n = t.split(" ");
            for (let r = 0; r < n.length; r += 1) {
                const e = n[r];
                for (let t = 0; t < this.length; t += 1) {
                    const n = this[t];
                    let r;
                    if (!s && n.dom7Listeners ? r = n.dom7Listeners[e] : s && n.dom7LiveListeners && (r = n.dom7LiveListeners[e]),
                    r && r.length)
                        for (let t = r.length - 1; t >= 0; t -= 1) {
                            const s = r[t];
                            a && s.listener === a || a && s.listener && s.listener.dom7proxy && s.listener.dom7proxy === a ? (n.removeEventListener(e, s.proxyListener, i),
                            r.splice(t, 1)) : a || (n.removeEventListener(e, s.proxyListener, i),
                            r.splice(t, 1))
                        }
                }
            }
            return this
        }
        function T(...e) {
            const t = e[0].split(" ")
              , s = e[1];
            for (let i = 0; i < t.length; i += 1) {
                const r = t[i];
                for (let t = 0; t < this.length; t += 1) {
                    const i = this[t];
                    let l;
                    try {
                        l = new o.CustomEvent(r,{
                            detail: s,
                            bubbles: !0,
                            cancelable: !0
                        })
                    } catch (a) {
                        l = n.createEvent("Event"),
                        l.initEvent(r, !0, !0),
                        l.detail = s
                    }
                    i.dom7EventData = e.filter((e,t)=>t > 0),
                    i.dispatchEvent(l),
                    i.dom7EventData = [],
                    delete i.dom7EventData
                }
            }
            return this
        }
        function S(e) {
            const t = ["webkitTransitionEnd", "transitionend"]
              , s = this;
            let a;
            function i(n) {
                if (n.target === this)
                    for (e.call(this, n),
                    a = 0; a < t.length; a += 1)
                        s.off(t[a], i)
            }
            if (e)
                for (a = 0; a < t.length; a += 1)
                    s.on(t[a], i);
            return this
        }
        function C(e) {
            if (this.length > 0) {
                if (e) {
                    const e = this.styles();
                    return this[0].offsetWidth + parseFloat(e.getPropertyValue("margin-right")) + parseFloat(e.getPropertyValue("margin-left"))
                }
                return this[0].offsetWidth
            }
            return null
        }
        function $(e) {
            if (this.length > 0) {
                if (e) {
                    const e = this.styles();
                    return this[0].offsetHeight + parseFloat(e.getPropertyValue("margin-top")) + parseFloat(e.getPropertyValue("margin-bottom"))
                }
                return this[0].offsetHeight
            }
            return null
        }
        function M() {
            if (this.length > 0) {
                const e = this[0]
                  , t = e.getBoundingClientRect()
                  , s = n.body
                  , a = e.clientTop || s.clientTop || 0
                  , i = e.clientLeft || s.clientLeft || 0
                  , r = e === o ? o.scrollY : e.scrollTop
                  , l = e === o ? o.scrollX : e.scrollLeft;
                return {
                    top: t.top + r - a,
                    left: t.left + l - i
                }
            }
            return null
        }
        function P() {
            return this[0] ? o.getComputedStyle(this[0], null) : {}
        }
        function k(e, t) {
            let s;
            if (1 === arguments.length) {
                if ("string" !== typeof e) {
                    for (s = 0; s < this.length; s += 1)
                        for (let t in e)
                            this[s].style[t] = e[t];
                    return this
                }
                if (this[0])
                    return o.getComputedStyle(this[0], null).getPropertyValue(e)
            }
            if (2 === arguments.length && "string" === typeof e) {
                for (s = 0; s < this.length; s += 1)
                    this[s].style[e] = t;
                return this
            }
            return this
        }
        function z(e) {
            if (!e)
                return this;
            for (let t = 0; t < this.length; t += 1)
                if (!1 === e.call(this[t], t, this[t]))
                    return this;
            return this
        }
        function L(e) {
            const t = []
              , s = this;
            for (let a = 0; a < s.length; a += 1)
                e.call(s[a], a, s[a]) && t.push(s[a]);
            return new d(t)
        }
        function I(e) {
            if ("undefined" === typeof e)
                return this[0] ? this[0].innerHTML : void 0;
            for (let t = 0; t < this.length; t += 1)
                this[t].innerHTML = e;
            return this
        }
        function O(e) {
            if ("undefined" === typeof e)
                return this[0] ? this[0].textContent.trim() : null;
            for (let t = 0; t < this.length; t += 1)
                this[t].textContent = e;
            return this
        }
        function D(e) {
            const t = this[0];
            let s, a;
            if (!t || "undefined" === typeof e)
                return !1;
            if ("string" === typeof e) {
                if (t.matches)
                    return t.matches(e);
                if (t.webkitMatchesSelector)
                    return t.webkitMatchesSelector(e);
                if (t.msMatchesSelector)
                    return t.msMatchesSelector(e);
                for (s = c(e),
                a = 0; a < s.length; a += 1)
                    if (s[a] === t)
                        return !0;
                return !1
            }
            if (e === n)
                return t === n;
            if (e === o)
                return t === o;
            if (e.nodeType || e instanceof d) {
                for (s = e.nodeType ? [e] : e,
                a = 0; a < s.length; a += 1)
                    if (s[a] === t)
                        return !0;
                return !1
            }
            return !1
        }
        function A() {
            let e, t = this[0];
            if (t) {
                e = 0;
                while (null !== (t = t.previousSibling))
                    1 === t.nodeType && (e += 1);
                return e
            }
        }
        function G(e) {
            if ("undefined" === typeof e)
                return this;
            const t = this.length;
            let s;
            return e > t - 1 ? new d([]) : e < 0 ? (s = t + e,
            new d(s < 0 ? [] : [this[s]])) : new d([this[e]])
        }
        function N(...e) {
            let t;
            for (let s = 0; s < e.length; s += 1) {
                t = e[s];
                for (let e = 0; e < this.length; e += 1)
                    if ("string" === typeof t) {
                        const s = n.createElement("div");
                        s.innerHTML = t;
                        while (s.firstChild)
                            this[e].appendChild(s.firstChild)
                    } else if (t instanceof d)
                        for (let s = 0; s < t.length; s += 1)
                            this[e].appendChild(t[s]);
                    else
                        this[e].appendChild(t)
            }
            return this
        }
        function H(e) {
            let t, s;
            for (t = 0; t < this.length; t += 1)
                if ("string" === typeof e) {
                    const a = n.createElement("div");
                    for (a.innerHTML = e,
                    s = a.childNodes.length - 1; s >= 0; s -= 1)
                        this[t].insertBefore(a.childNodes[s], this[t].childNodes[0])
                } else if (e instanceof d)
                    for (s = 0; s < e.length; s += 1)
                        this[t].insertBefore(e[s], this[t].childNodes[0]);
                else
                    this[t].insertBefore(e, this[t].childNodes[0]);
            return this
        }
        function B(e) {
            return this.length > 0 ? e ? this[0].nextElementSibling && c(this[0].nextElementSibling).is(e) ? new d([this[0].nextElementSibling]) : new d([]) : this[0].nextElementSibling ? new d([this[0].nextElementSibling]) : new d([]) : new d([])
        }
        function X(e) {
            const t = [];
            let s = this[0];
            if (!s)
                return new d([]);
            while (s.nextElementSibling) {
                const a = s.nextElementSibling;
                e ? c(a).is(e) && t.push(a) : t.push(a),
                s = a
            }
            return new d(t)
        }
        function V(e) {
            if (this.length > 0) {
                const t = this[0];
                return e ? t.previousElementSibling && c(t.previousElementSibling).is(e) ? new d([t.previousElementSibling]) : new d([]) : t.previousElementSibling ? new d([t.previousElementSibling]) : new d([])
            }
            return new d([])
        }
        function Y(e) {
            const t = [];
            let s = this[0];
            if (!s)
                return new d([]);
            while (s.previousElementSibling) {
                const a = s.previousElementSibling;
                e ? c(a).is(e) && t.push(a) : t.push(a),
                s = a
            }
            return new d(t)
        }
        function F(e) {
            const t = [];
            for (let s = 0; s < this.length; s += 1)
                null !== this[s].parentNode && (e ? c(this[s].parentNode).is(e) && t.push(this[s].parentNode) : t.push(this[s].parentNode));
            return c(p(t))
        }
        function W(e) {
            const t = [];
            for (let s = 0; s < this.length; s += 1) {
                let a = this[s].parentNode;
                while (a)
                    e ? c(a).is(e) && t.push(a) : t.push(a),
                    a = a.parentNode
            }
            return c(p(t))
        }
        function R(e) {
            let t = this;
            return "undefined" === typeof e ? new d([]) : (t.is(e) || (t = t.parents(e).eq(0)),
            t)
        }
        function q(e) {
            const t = [];
            for (let s = 0; s < this.length; s += 1) {
                const a = this[s].querySelectorAll(e);
                for (let e = 0; e < a.length; e += 1)
                    t.push(a[e])
            }
            return new d(t)
        }
        function j(e) {
            const t = [];
            for (let s = 0; s < this.length; s += 1) {
                const a = this[s].childNodes;
                for (let s = 0; s < a.length; s += 1)
                    e ? 1 === a[s].nodeType && c(a[s]).is(e) && t.push(a[s]) : 1 === a[s].nodeType && t.push(a[s])
            }
            return new d(p(t))
        }
        function _() {
            for (let e = 0; e < this.length; e += 1)
                this[e].parentNode && this[e].parentNode.removeChild(this[e]);
            return this
        }
        function K(...e) {
            const t = this;
            let s, a;
            for (s = 0; s < e.length; s += 1) {
                const i = c(e[s]);
                for (a = 0; a < i.length; a += 1)
                    t[t.length] = i[a],
                    t.length += 1
            }
            return t
        }
        c.fn = d.prototype,
        c.Class = d,
        c.Dom7 = d;
        "resize scroll".split(" ");
        const U = {
            addClass: u,
            removeClass: h,
            hasClass: m,
            toggleClass: f,
            attr: g,
            removeAttr: v,
            data: b,
            transform: y,
            transition: w,
            on: x,
            off: E,
            trigger: T,
            transitionEnd: S,
            outerWidth: C,
            outerHeight: $,
            offset: M,
            css: k,
            each: z,
            html: I,
            text: O,
            is: D,
            index: A,
            eq: G,
            append: N,
            prepend: H,
            next: B,
            nextAll: X,
            prev: V,
            prevAll: Y,
            parent: F,
            parents: W,
            closest: R,
            find: q,
            children: j,
            filter: L,
            remove: _,
            add: K,
            styles: P
        };
        Object.keys(U).forEach(e=>{
            c.fn[e] = c.fn[e] || U[e]
        }
        );
        const J = {
            deleteProps(e) {
                const t = e;
                Object.keys(t).forEach(e=>{
                    try {
                        t[e] = null
                    } catch (s) {}
                    try {
                        delete t[e]
                    } catch (s) {}
                }
                )
            },
            nextTick(e, t=0) {
                return setTimeout(e, t)
            },
            now() {
                return Date.now()
            },
            getTranslate(e, t="x") {
                let s, a, i;
                const n = o.getComputedStyle(e, null);
                return o.WebKitCSSMatrix ? (a = n.transform || n.webkitTransform,
                a.split(",").length > 6 && (a = a.split(", ").map(e=>e.replace(",", ".")).join(", ")),
                i = new o.WebKitCSSMatrix("none" === a ? "" : a)) : (i = n.MozTransform || n.OTransform || n.MsTransform || n.msTransform || n.transform || n.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"),
                s = i.toString().split(",")),
                "x" === t && (a = o.WebKitCSSMatrix ? i.m41 : 16 === s.length ? parseFloat(s[12]) : parseFloat(s[4])),
                "y" === t && (a = o.WebKitCSSMatrix ? i.m42 : 16 === s.length ? parseFloat(s[13]) : parseFloat(s[5])),
                a || 0
            },
            parseUrlQuery(e) {
                const t = {};
                let s, a, i, n, r = e || o.location.href;
                if ("string" === typeof r && r.length)
                    for (r = r.indexOf("?") > -1 ? r.replace(/\S*\?/, "") : "",
                    a = r.split("&").filter(e=>"" !== e),
                    n = a.length,
                    s = 0; s < n; s += 1)
                        i = a[s].replace(/#\S+/g, "").split("="),
                        t[decodeURIComponent(i[0])] = "undefined" === typeof i[1] ? void 0 : decodeURIComponent(i[1]) || "";
                return t
            },
            isObject(e) {
                return "object" === typeof e && null !== e && e.constructor && e.constructor === Object
            },
            extend(...e) {
                const t = Object(e[0]);
                for (let s = 1; s < e.length; s += 1) {
                    const a = e[s];
                    if (void 0 !== a && null !== a) {
                        const e = Object.keys(Object(a));
                        for (let s = 0, i = e.length; s < i; s += 1) {
                            const i = e[s]
                              , n = Object.getOwnPropertyDescriptor(a, i);
                            void 0 !== n && n.enumerable && (J.isObject(t[i]) && J.isObject(a[i]) ? J.extend(t[i], a[i]) : !J.isObject(t[i]) && J.isObject(a[i]) ? (t[i] = {},
                            J.extend(t[i], a[i])) : t[i] = a[i])
                        }
                    }
                }
                return t
            }
        }
          , Z = function() {
            return {
                touch: !!("ontouchstart"in o || o.DocumentTouch && n instanceof o.DocumentTouch),
                pointerEvents: !!o.PointerEvent && "maxTouchPoints"in o.navigator && o.navigator.maxTouchPoints >= 0,
                observer: function() {
                    return "MutationObserver"in o || "WebkitMutationObserver"in o
                }(),
                passiveListener: function() {
                    let e = !1;
                    try {
                        const t = Object.defineProperty({}, "passive", {
                            get() {
                                e = !0
                            }
                        });
                        o.addEventListener("testPassiveListener", null, t)
                    } catch (t) {}
                    return e
                }(),
                gestures: function() {
                    return "ongesturestart"in o
                }()
            }
        }();
        class Q {
            constructor(e={}) {
                const t = this;
                t.params = e,
                t.eventsListeners = {},
                t.params && t.params.on && Object.keys(t.params.on).forEach(e=>{
                    t.on(e, t.params.on[e])
                }
                )
            }
            on(e, t, s) {
                const a = this;
                if ("function" !== typeof t)
                    return a;
                const i = s ? "unshift" : "push";
                return e.split(" ").forEach(e=>{
                    a.eventsListeners[e] || (a.eventsListeners[e] = []),
                    a.eventsListeners[e][i](t)
                }
                ),
                a
            }
            once(e, t, s) {
                const a = this;
                if ("function" !== typeof t)
                    return a;
                function i(...s) {
                    a.off(e, i),
                    i.f7proxy && delete i.f7proxy,
                    t.apply(a, s)
                }
                return i.f7proxy = t,
                a.on(e, i, s)
            }
            off(e, t) {
                const s = this;
                return s.eventsListeners ? (e.split(" ").forEach(e=>{
                    "undefined" === typeof t ? s.eventsListeners[e] = [] : s.eventsListeners[e] && s.eventsListeners[e].length && s.eventsListeners[e].forEach((a,i)=>{
                        (a === t || a.f7proxy && a.f7proxy === t) && s.eventsListeners[e].splice(i, 1)
                    }
                    )
                }
                ),
                s) : s
            }
            emit(...e) {
                const t = this;
                if (!t.eventsListeners)
                    return t;
                let s, a, i;
                "string" === typeof e[0] || Array.isArray(e[0]) ? (s = e[0],
                a = e.slice(1, e.length),
                i = t) : (s = e[0].events,
                a = e[0].data,
                i = e[0].context || t);
                const n = Array.isArray(s) ? s : s.split(" ");
                return n.forEach(e=>{
                    if (t.eventsListeners && t.eventsListeners[e]) {
                        const s = [];
                        t.eventsListeners[e].forEach(e=>{
                            s.push(e)
                        }
                        ),
                        s.forEach(e=>{
                            e.apply(i, a)
                        }
                        )
                    }
                }
                ),
                t
            }
            useModulesParams(e) {
                const t = this;
                t.modules && Object.keys(t.modules).forEach(s=>{
                    const a = t.modules[s];
                    a.params && J.extend(e, a.params)
                }
                )
            }
            useModules(e={}) {
                const t = this;
                t.modules && Object.keys(t.modules).forEach(s=>{
                    const a = t.modules[s]
                      , i = e[s] || {};
                    a.instance && Object.keys(a.instance).forEach(e=>{
                        const s = a.instance[e];
                        t[e] = "function" === typeof s ? s.bind(t) : s
                    }
                    ),
                    a.on && t.on && Object.keys(a.on).forEach(e=>{
                        t.on(e, a.on[e])
                    }
                    ),
                    a.create && a.create.bind(t)(i)
                }
                )
            }
            static set components(e) {
                const t = this;
                t.use && t.use(e)
            }
            static installModule(e, ...t) {
                const s = this;
                s.prototype.modules || (s.prototype.modules = {});
                const a = e.name || `${Object.keys(s.prototype.modules).length}_${J.now()}`;
                return s.prototype.modules[a] = e,
                e.proto && Object.keys(e.proto).forEach(t=>{
                    s.prototype[t] = e.proto[t]
                }
                ),
                e.static && Object.keys(e.static).forEach(t=>{
                    s[t] = e.static[t]
                }
                ),
                e.install && e.install.apply(s, t),
                s
            }
            static use(e, ...t) {
                const s = this;
                return Array.isArray(e) ? (e.forEach(e=>s.installModule(e)),
                s) : s.installModule(e, ...t)
            }
        }
        function ee() {
            const e = this;
            let t, s;
            const a = e.$el;
            t = "undefined" !== typeof e.params.width ? e.params.width : a[0].clientWidth,
            s = "undefined" !== typeof e.params.height ? e.params.height : a[0].clientHeight,
            0 === t && e.isHorizontal() || 0 === s && e.isVertical() || (t = t - parseInt(a.css("padding-left"), 10) - parseInt(a.css("padding-right"), 10),
            s = s - parseInt(a.css("padding-top"), 10) - parseInt(a.css("padding-bottom"), 10),
            J.extend(e, {
                width: t,
                height: s,
                size: e.isHorizontal() ? t : s
            }))
        }
        function te() {
            const e = this
              , t = e.params
              , {$wrapperEl: s, size: a, rtlTranslate: i, wrongRTL: n} = e
              , r = e.virtual && t.virtual.enabled
              , l = r ? e.virtual.slides.length : e.slides.length
              , d = s.children("." + e.params.slideClass)
              , c = r ? e.virtual.slides.length : d.length;
            let p = [];
            const u = []
              , h = [];
            function m(e) {
                return !t.cssMode || e !== d.length - 1
            }
            let f = t.slidesOffsetBefore;
            "function" === typeof f && (f = t.slidesOffsetBefore.call(e));
            let g = t.slidesOffsetAfter;
            "function" === typeof g && (g = t.slidesOffsetAfter.call(e));
            const v = e.snapGrid.length
              , b = e.snapGrid.length;
            let y, w, x = t.spaceBetween, E = -f, T = 0, S = 0;
            if ("undefined" === typeof a)
                return;
            "string" === typeof x && x.indexOf("%") >= 0 && (x = parseFloat(x.replace("%", "")) / 100 * a),
            e.virtualSize = -x,
            i ? d.css({
                marginLeft: "",
                marginTop: ""
            }) : d.css({
                marginRight: "",
                marginBottom: ""
            }),
            t.slidesPerColumn > 1 && (y = Math.floor(c / t.slidesPerColumn) === c / e.params.slidesPerColumn ? c : Math.ceil(c / t.slidesPerColumn) * t.slidesPerColumn,
            "auto" !== t.slidesPerView && "row" === t.slidesPerColumnFill && (y = Math.max(y, t.slidesPerView * t.slidesPerColumn)));
            const C = t.slidesPerColumn
              , $ = y / C
              , M = Math.floor(c / t.slidesPerColumn);
            for (let k = 0; k < c; k += 1) {
                w = 0;
                const s = d.eq(k);
                if (t.slidesPerColumn > 1) {
                    let a, i, n;
                    if ("row" === t.slidesPerColumnFill && t.slidesPerGroup > 1) {
                        const e = Math.floor(k / (t.slidesPerGroup * t.slidesPerColumn))
                          , r = k - t.slidesPerColumn * t.slidesPerGroup * e
                          , o = 0 === e ? t.slidesPerGroup : Math.min(Math.ceil((c - e * C * t.slidesPerGroup) / C), t.slidesPerGroup);
                        n = Math.floor(r / o),
                        i = r - n * o + e * t.slidesPerGroup,
                        a = i + n * y / C,
                        s.css({
                            "-webkit-box-ordinal-group": a,
                            "-moz-box-ordinal-group": a,
                            "-ms-flex-order": a,
                            "-webkit-order": a,
                            order: a
                        })
                    } else
                        "column" === t.slidesPerColumnFill ? (i = Math.floor(k / C),
                        n = k - i * C,
                        (i > M || i === M && n === C - 1) && (n += 1,
                        n >= C && (n = 0,
                        i += 1))) : (n = Math.floor(k / $),
                        i = k - n * $);
                    s.css("margin-" + (e.isHorizontal() ? "top" : "left"), 0 !== n && t.spaceBetween && t.spaceBetween + "px")
                }
                if ("none" !== s.css("display")) {
                    if ("auto" === t.slidesPerView) {
                        const a = o.getComputedStyle(s[0], null)
                          , i = s[0].style.transform
                          , n = s[0].style.webkitTransform;
                        if (i && (s[0].style.transform = "none"),
                        n && (s[0].style.webkitTransform = "none"),
                        t.roundLengths)
                            w = e.isHorizontal() ? s.outerWidth(!0) : s.outerHeight(!0);
                        else if (e.isHorizontal()) {
                            const e = parseFloat(a.getPropertyValue("width"))
                              , t = parseFloat(a.getPropertyValue("padding-left"))
                              , s = parseFloat(a.getPropertyValue("padding-right"))
                              , i = parseFloat(a.getPropertyValue("margin-left"))
                              , n = parseFloat(a.getPropertyValue("margin-right"))
                              , r = a.getPropertyValue("box-sizing");
                            w = r && "border-box" === r ? e + i + n : e + t + s + i + n
                        } else {
                            const e = parseFloat(a.getPropertyValue("height"))
                              , t = parseFloat(a.getPropertyValue("padding-top"))
                              , s = parseFloat(a.getPropertyValue("padding-bottom"))
                              , i = parseFloat(a.getPropertyValue("margin-top"))
                              , n = parseFloat(a.getPropertyValue("margin-bottom"))
                              , r = a.getPropertyValue("box-sizing");
                            w = r && "border-box" === r ? e + i + n : e + t + s + i + n
                        }
                        i && (s[0].style.transform = i),
                        n && (s[0].style.webkitTransform = n),
                        t.roundLengths && (w = Math.floor(w))
                    } else
                        w = (a - (t.slidesPerView - 1) * x) / t.slidesPerView,
                        t.roundLengths && (w = Math.floor(w)),
                        d[k] && (e.isHorizontal() ? d[k].style.width = w + "px" : d[k].style.height = w + "px");
                    d[k] && (d[k].swiperSlideSize = w),
                    h.push(w),
                    t.centeredSlides ? (E = E + w / 2 + T / 2 + x,
                    0 === T && 0 !== k && (E = E - a / 2 - x),
                    0 === k && (E = E - a / 2 - x),
                    Math.abs(E) < .001 && (E = 0),
                    t.roundLengths && (E = Math.floor(E)),
                    S % t.slidesPerGroup === 0 && p.push(E),
                    u.push(E)) : (t.roundLengths && (E = Math.floor(E)),
                    (S - Math.min(e.params.slidesPerGroupSkip, S)) % e.params.slidesPerGroup === 0 && p.push(E),
                    u.push(E),
                    E = E + w + x),
                    e.virtualSize += w + x,
                    T = w,
                    S += 1
                }
            }
            let P;
            if (e.virtualSize = Math.max(e.virtualSize, a) + g,
            i && n && ("slide" === t.effect || "coverflow" === t.effect) && s.css({
                width: e.virtualSize + t.spaceBetween + "px"
            }),
            t.setWrapperSize && (e.isHorizontal() ? s.css({
                width: e.virtualSize + t.spaceBetween + "px"
            }) : s.css({
                height: e.virtualSize + t.spaceBetween + "px"
            })),
            t.slidesPerColumn > 1 && (e.virtualSize = (w + t.spaceBetween) * y,
            e.virtualSize = Math.ceil(e.virtualSize / t.slidesPerColumn) - t.spaceBetween,
            e.isHorizontal() ? s.css({
                width: e.virtualSize + t.spaceBetween + "px"
            }) : s.css({
                height: e.virtualSize + t.spaceBetween + "px"
            }),
            t.centeredSlides)) {
                P = [];
                for (let s = 0; s < p.length; s += 1) {
                    let a = p[s];
                    t.roundLengths && (a = Math.floor(a)),
                    p[s] < e.virtualSize + p[0] && P.push(a)
                }
                p = P
            }
            if (!t.centeredSlides) {
                P = [];
                for (let s = 0; s < p.length; s += 1) {
                    let i = p[s];
                    t.roundLengths && (i = Math.floor(i)),
                    p[s] <= e.virtualSize - a && P.push(i)
                }
                p = P,
                Math.floor(e.virtualSize - a) - Math.floor(p[p.length - 1]) > 1 && p.push(e.virtualSize - a)
            }
            if (0 === p.length && (p = [0]),
            0 !== t.spaceBetween && (e.isHorizontal() ? i ? d.filter(m).css({
                marginLeft: x + "px"
            }) : d.filter(m).css({
                marginRight: x + "px"
            }) : d.filter(m).css({
                marginBottom: x + "px"
            })),
            t.centeredSlides && t.centeredSlidesBounds) {
                let e = 0;
                h.forEach(s=>{
                    e += s + (t.spaceBetween ? t.spaceBetween : 0)
                }
                ),
                e -= t.spaceBetween;
                const s = e - a;
                p = p.map(e=>e < 0 ? -f : e > s ? s + g : e)
            }
            if (t.centerInsufficientSlides) {
                let e = 0;
                if (h.forEach(s=>{
                    e += s + (t.spaceBetween ? t.spaceBetween : 0)
                }
                ),
                e -= t.spaceBetween,
                e < a) {
                    const t = (a - e) / 2;
                    p.forEach((e,s)=>{
                        p[s] = e - t
                    }
                    ),
                    u.forEach((e,s)=>{
                        u[s] = e + t
                    }
                    )
                }
            }
            J.extend(e, {
                slides: d,
                snapGrid: p,
                slidesGrid: u,
                slidesSizesGrid: h
            }),
            c !== l && e.emit("slidesLengthChange"),
            p.length !== v && (e.params.watchOverflow && e.checkOverflow(),
            e.emit("snapGridLengthChange")),
            u.length !== b && e.emit("slidesGridLengthChange"),
            (t.watchSlidesProgress || t.watchSlidesVisibility) && e.updateSlidesOffset()
        }
        function se(e) {
            const t = this
              , s = [];
            let a, i = 0;
            if ("number" === typeof e ? t.setTransition(e) : !0 === e && t.setTransition(t.params.speed),
            "auto" !== t.params.slidesPerView && t.params.slidesPerView > 1)
                if (t.params.centeredSlides)
                    t.visibleSlides.each((e,t)=>{
                        s.push(t)
                    }
                    );
                else
                    for (a = 0; a < Math.ceil(t.params.slidesPerView); a += 1) {
                        const e = t.activeIndex + a;
                        if (e > t.slides.length)
                            break;
                        s.push(t.slides.eq(e)[0])
                    }
            else
                s.push(t.slides.eq(t.activeIndex)[0]);
            for (a = 0; a < s.length; a += 1)
                if ("undefined" !== typeof s[a]) {
                    const e = s[a].offsetHeight;
                    i = e > i ? e : i
                }
            i && t.$wrapperEl.css("height", i + "px")
        }
        function ae() {
            const e = this
              , t = e.slides;
            for (let s = 0; s < t.length; s += 1)
                t[s].swiperSlideOffset = e.isHorizontal() ? t[s].offsetLeft : t[s].offsetTop
        }
        function ie(e=this && this.translate || 0) {
            const t = this
              , s = t.params
              , {slides: a, rtlTranslate: i} = t;
            if (0 === a.length)
                return;
            "undefined" === typeof a[0].swiperSlideOffset && t.updateSlidesOffset();
            let n = -e;
            i && (n = e),
            a.removeClass(s.slideVisibleClass),
            t.visibleSlidesIndexes = [],
            t.visibleSlides = [];
            for (let r = 0; r < a.length; r += 1) {
                const e = a[r]
                  , o = (n + (s.centeredSlides ? t.minTranslate() : 0) - e.swiperSlideOffset) / (e.swiperSlideSize + s.spaceBetween);
                if (s.watchSlidesVisibility || s.centeredSlides && s.autoHeight) {
                    const i = -(n - e.swiperSlideOffset)
                      , o = i + t.slidesSizesGrid[r]
                      , l = i >= 0 && i < t.size - 1 || o > 1 && o <= t.size || i <= 0 && o >= t.size;
                    l && (t.visibleSlides.push(e),
                    t.visibleSlidesIndexes.push(r),
                    a.eq(r).addClass(s.slideVisibleClass))
                }
                e.progress = i ? -o : o
            }
            t.visibleSlides = c(t.visibleSlides)
        }
        function ne(e) {
            const t = this;
            if ("undefined" === typeof e) {
                const s = t.rtlTranslate ? -1 : 1;
                e = t && t.translate && t.translate * s || 0
            }
            const s = t.params
              , a = t.maxTranslate() - t.minTranslate();
            let {progress: i, isBeginning: n, isEnd: r} = t;
            const o = n
              , l = r;
            0 === a ? (i = 0,
            n = !0,
            r = !0) : (i = (e - t.minTranslate()) / a,
            n = i <= 0,
            r = i >= 1),
            J.extend(t, {
                progress: i,
                isBeginning: n,
                isEnd: r
            }),
            (s.watchSlidesProgress || s.watchSlidesVisibility || s.centeredSlides && s.autoHeight) && t.updateSlidesProgress(e),
            n && !o && t.emit("reachBeginning toEdge"),
            r && !l && t.emit("reachEnd toEdge"),
            (o && !n || l && !r) && t.emit("fromEdge"),
            t.emit("progress", i)
        }
        function re() {
            const e = this
              , {slides: t, params: s, $wrapperEl: a, activeIndex: i, realIndex: n} = e
              , r = e.virtual && s.virtual.enabled;
            let o;
            t.removeClass(`${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass} ${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass} ${s.slideDuplicatePrevClass}`),
            o = r ? e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-index="${i}"]`) : t.eq(i),
            o.addClass(s.slideActiveClass),
            s.loop && (o.hasClass(s.slideDuplicateClass) ? a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${n}"]`).addClass(s.slideDuplicateActiveClass) : a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${n}"]`).addClass(s.slideDuplicateActiveClass));
            let l = o.nextAll("." + s.slideClass).eq(0).addClass(s.slideNextClass);
            s.loop && 0 === l.length && (l = t.eq(0),
            l.addClass(s.slideNextClass));
            let d = o.prevAll("." + s.slideClass).eq(0).addClass(s.slidePrevClass);
            s.loop && 0 === d.length && (d = t.eq(-1),
            d.addClass(s.slidePrevClass)),
            s.loop && (l.hasClass(s.slideDuplicateClass) ? a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass) : a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass),
            d.hasClass(s.slideDuplicateClass) ? a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass) : a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass))
        }
        function oe(e) {
            const t = this
              , s = t.rtlTranslate ? t.translate : -t.translate
              , {slidesGrid: a, snapGrid: i, params: n, activeIndex: r, realIndex: o, snapIndex: l} = t;
            let d, c = e;
            if ("undefined" === typeof c) {
                for (let e = 0; e < a.length; e += 1)
                    "undefined" !== typeof a[e + 1] ? s >= a[e] && s < a[e + 1] - (a[e + 1] - a[e]) / 2 ? c = e : s >= a[e] && s < a[e + 1] && (c = e + 1) : s >= a[e] && (c = e);
                n.normalizeSlideIndex && (c < 0 || "undefined" === typeof c) && (c = 0)
            }
            if (i.indexOf(s) >= 0)
                d = i.indexOf(s);
            else {
                const e = Math.min(n.slidesPerGroupSkip, c);
                d = e + Math.floor((c - e) / n.slidesPerGroup)
            }
            if (d >= i.length && (d = i.length - 1),
            c === r)
                return void (d !== l && (t.snapIndex = d,
                t.emit("snapIndexChange")));
            const p = parseInt(t.slides.eq(c).attr("data-swiper-slide-index") || c, 10);
            J.extend(t, {
                snapIndex: d,
                realIndex: p,
                previousIndex: r,
                activeIndex: c
            }),
            t.emit("activeIndexChange"),
            t.emit("snapIndexChange"),
            o !== p && t.emit("realIndexChange"),
            (t.initialized || t.params.runCallbacksOnInit) && t.emit("slideChange")
        }
        function le(e) {
            const t = this
              , s = t.params
              , a = c(e.target).closest("." + s.slideClass)[0];
            let i = !1;
            if (a)
                for (let n = 0; n < t.slides.length; n += 1)
                    t.slides[n] === a && (i = !0);
            if (!a || !i)
                return t.clickedSlide = void 0,
                void (t.clickedIndex = void 0);
            t.clickedSlide = a,
            t.virtual && t.params.virtual.enabled ? t.clickedIndex = parseInt(c(a).attr("data-swiper-slide-index"), 10) : t.clickedIndex = c(a).index(),
            s.slideToClickedSlide && void 0 !== t.clickedIndex && t.clickedIndex !== t.activeIndex && t.slideToClickedSlide()
        }
        var de = {
            updateSize: ee,
            updateSlides: te,
            updateAutoHeight: se,
            updateSlidesOffset: ae,
            updateSlidesProgress: ie,
            updateProgress: ne,
            updateSlidesClasses: re,
            updateActiveIndex: oe,
            updateClickedSlide: le
        };
        function ce(e=(this.isHorizontal() ? "x" : "y")) {
            const t = this
              , {params: s, rtlTranslate: a, translate: i, $wrapperEl: n} = t;
            if (s.virtualTranslate)
                return a ? -i : i;
            if (s.cssMode)
                return i;
            let r = J.getTranslate(n[0], e);
            return a && (r = -r),
            r || 0
        }
        function pe(e, t) {
            const s = this
              , {rtlTranslate: a, params: i, $wrapperEl: n, wrapperEl: r, progress: o} = s;
            let l = 0
              , d = 0;
            const c = 0;
            let p;
            s.isHorizontal() ? l = a ? -e : e : d = e,
            i.roundLengths && (l = Math.floor(l),
            d = Math.floor(d)),
            i.cssMode ? r[s.isHorizontal() ? "scrollLeft" : "scrollTop"] = s.isHorizontal() ? -l : -d : i.virtualTranslate || n.transform(`translate3d(${l}px, ${d}px, ${c}px)`),
            s.previousTranslate = s.translate,
            s.translate = s.isHorizontal() ? l : d;
            const u = s.maxTranslate() - s.minTranslate();
            p = 0 === u ? 0 : (e - s.minTranslate()) / u,
            p !== o && s.updateProgress(e),
            s.emit("setTranslate", s.translate, t)
        }
        function ue() {
            return -this.snapGrid[0]
        }
        function he() {
            return -this.snapGrid[this.snapGrid.length - 1]
        }
        function me(e=0, t=this.params.speed, s=!0, a=!0, i) {
            const n = this
              , {params: r, wrapperEl: o} = n;
            if (n.animating && r.preventInteractionOnTransition)
                return !1;
            const l = n.minTranslate()
              , d = n.maxTranslate();
            let c;
            if (c = a && e > l ? l : a && e < d ? d : e,
            n.updateProgress(c),
            r.cssMode) {
                const e = n.isHorizontal();
                return 0 === t ? o[e ? "scrollLeft" : "scrollTop"] = -c : o.scrollTo ? o.scrollTo({
                    [e ? "left" : "top"]: -c,
                    behavior: "smooth"
                }) : o[e ? "scrollLeft" : "scrollTop"] = -c,
                !0
            }
            return 0 === t ? (n.setTransition(0),
            n.setTranslate(c),
            s && (n.emit("beforeTransitionStart", t, i),
            n.emit("transitionEnd"))) : (n.setTransition(t),
            n.setTranslate(c),
            s && (n.emit("beforeTransitionStart", t, i),
            n.emit("transitionStart")),
            n.animating || (n.animating = !0,
            n.onTranslateToWrapperTransitionEnd || (n.onTranslateToWrapperTransitionEnd = function(e) {
                n && !n.destroyed && e.target === this && (n.$wrapperEl[0].removeEventListener("transitionend", n.onTranslateToWrapperTransitionEnd),
                n.$wrapperEl[0].removeEventListener("webkitTransitionEnd", n.onTranslateToWrapperTransitionEnd),
                n.onTranslateToWrapperTransitionEnd = null,
                delete n.onTranslateToWrapperTransitionEnd,
                s && n.emit("transitionEnd"))
            }
            ),
            n.$wrapperEl[0].addEventListener("transitionend", n.onTranslateToWrapperTransitionEnd),
            n.$wrapperEl[0].addEventListener("webkitTransitionEnd", n.onTranslateToWrapperTransitionEnd))),
            !0
        }
        var fe = {
            getTranslate: ce,
            setTranslate: pe,
            minTranslate: ue,
            maxTranslate: he,
            translateTo: me
        };
        function ge(e, t) {
            const s = this;
            s.params.cssMode || s.$wrapperEl.transition(e),
            s.emit("setTransition", e, t)
        }
        function ve(e=!0, t) {
            const s = this
              , {activeIndex: a, params: i, previousIndex: n} = s;
            if (i.cssMode)
                return;
            i.autoHeight && s.updateAutoHeight();
            let r = t;
            if (r || (r = a > n ? "next" : a < n ? "prev" : "reset"),
            s.emit("transitionStart"),
            e && a !== n) {
                if ("reset" === r)
                    return void s.emit("slideResetTransitionStart");
                s.emit("slideChangeTransitionStart"),
                "next" === r ? s.emit("slideNextTransitionStart") : s.emit("slidePrevTransitionStart")
            }
        }
        function be(e=!0, t) {
            const s = this
              , {activeIndex: a, previousIndex: i, params: n} = s;
            if (s.animating = !1,
            n.cssMode)
                return;
            s.setTransition(0);
            let r = t;
            if (r || (r = a > i ? "next" : a < i ? "prev" : "reset"),
            s.emit("transitionEnd"),
            e && a !== i) {
                if ("reset" === r)
                    return void s.emit("slideResetTransitionEnd");
                s.emit("slideChangeTransitionEnd"),
                "next" === r ? s.emit("slideNextTransitionEnd") : s.emit("slidePrevTransitionEnd")
            }
        }
        var ye = {
            setTransition: ge,
            transitionStart: ve,
            transitionEnd: be
        };
        function we(e=0, t=this.params.speed, s=!0, a) {
            const i = this;
            let n = e;
            n < 0 && (n = 0);
            const {params: r, snapGrid: o, slidesGrid: l, previousIndex: d, activeIndex: c, rtlTranslate: p, wrapperEl: u} = i;
            if (i.animating && r.preventInteractionOnTransition)
                return !1;
            const h = Math.min(i.params.slidesPerGroupSkip, n);
            let m = h + Math.floor((n - h) / i.params.slidesPerGroup);
            m >= o.length && (m = o.length - 1),
            (c || r.initialSlide || 0) === (d || 0) && s && i.emit("beforeSlideChangeStart");
            const f = -o[m];
            if (i.updateProgress(f),
            r.normalizeSlideIndex)
                for (let v = 0; v < l.length; v += 1)
                    -Math.floor(100 * f) >= Math.floor(100 * l[v]) && (n = v);
            if (i.initialized && n !== c) {
                if (!i.allowSlideNext && f < i.translate && f < i.minTranslate())
                    return !1;
                if (!i.allowSlidePrev && f > i.translate && f > i.maxTranslate() && (c || 0) !== n)
                    return !1
            }
            let g;
            if (g = n > c ? "next" : n < c ? "prev" : "reset",
            p && -f === i.translate || !p && f === i.translate)
                return i.updateActiveIndex(n),
                r.autoHeight && i.updateAutoHeight(),
                i.updateSlidesClasses(),
                "slide" !== r.effect && i.setTranslate(f),
                "reset" !== g && (i.transitionStart(s, g),
                i.transitionEnd(s, g)),
                !1;
            if (r.cssMode) {
                const e = i.isHorizontal();
                let s = -f;
                return p && (s = u.scrollWidth - u.offsetWidth - s),
                0 === t ? u[e ? "scrollLeft" : "scrollTop"] = s : u.scrollTo ? u.scrollTo({
                    [e ? "left" : "top"]: s,
                    behavior: "smooth"
                }) : u[e ? "scrollLeft" : "scrollTop"] = s,
                !0
            }
            return 0 === t ? (i.setTransition(0),
            i.setTranslate(f),
            i.updateActiveIndex(n),
            i.updateSlidesClasses(),
            i.emit("beforeTransitionStart", t, a),
            i.transitionStart(s, g),
            i.transitionEnd(s, g)) : (i.setTransition(t),
            i.setTranslate(f),
            i.updateActiveIndex(n),
            i.updateSlidesClasses(),
            i.emit("beforeTransitionStart", t, a),
            i.transitionStart(s, g),
            i.animating || (i.animating = !0,
            i.onSlideToWrapperTransitionEnd || (i.onSlideToWrapperTransitionEnd = function(e) {
                i && !i.destroyed && e.target === this && (i.$wrapperEl[0].removeEventListener("transitionend", i.onSlideToWrapperTransitionEnd),
                i.$wrapperEl[0].removeEventListener("webkitTransitionEnd", i.onSlideToWrapperTransitionEnd),
                i.onSlideToWrapperTransitionEnd = null,
                delete i.onSlideToWrapperTransitionEnd,
                i.transitionEnd(s, g))
            }
            ),
            i.$wrapperEl[0].addEventListener("transitionend", i.onSlideToWrapperTransitionEnd),
            i.$wrapperEl[0].addEventListener("webkitTransitionEnd", i.onSlideToWrapperTransitionEnd))),
            !0
        }
        function xe(e=0, t=this.params.speed, s=!0, a) {
            const i = this;
            let n = e;
            return i.params.loop && (n += i.loopedSlides),
            i.slideTo(n, t, s, a)
        }
        function Ee(e=this.params.speed, t=!0, s) {
            const a = this
              , {params: i, animating: n} = a
              , r = a.activeIndex < i.slidesPerGroupSkip ? 1 : i.slidesPerGroup;
            if (i.loop) {
                if (n)
                    return !1;
                a.loopFix(),
                a._clientLeft = a.$wrapperEl[0].clientLeft
            }
            return a.slideTo(a.activeIndex + r, e, t, s)
        }
        function Te(e=this.params.speed, t=!0, s) {
            const a = this
              , {params: i, animating: n, snapGrid: r, slidesGrid: o, rtlTranslate: l} = a;
            if (i.loop) {
                if (n)
                    return !1;
                a.loopFix(),
                a._clientLeft = a.$wrapperEl[0].clientLeft
            }
            const d = l ? a.translate : -a.translate;
            function c(e) {
                return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e)
            }
            const p = c(d)
              , u = r.map(e=>c(e));
            o.map(e=>c(e)),
            r[u.indexOf(p)];
            let h, m = r[u.indexOf(p) - 1];
            return "undefined" === typeof m && i.cssMode && r.forEach(e=>{
                !m && p >= e && (m = e)
            }
            ),
            "undefined" !== typeof m && (h = o.indexOf(m),
            h < 0 && (h = a.activeIndex - 1)),
            a.slideTo(h, e, t, s)
        }
        function Se(e=this.params.speed, t=!0, s) {
            const a = this;
            return a.slideTo(a.activeIndex, e, t, s)
        }
        function Ce(e=this.params.speed, t=!0, s, a=.5) {
            const i = this;
            let n = i.activeIndex;
            const r = Math.min(i.params.slidesPerGroupSkip, n)
              , o = r + Math.floor((n - r) / i.params.slidesPerGroup)
              , l = i.rtlTranslate ? i.translate : -i.translate;
            if (l >= i.snapGrid[o]) {
                const e = i.snapGrid[o]
                  , t = i.snapGrid[o + 1];
                l - e > (t - e) * a && (n += i.params.slidesPerGroup)
            } else {
                const e = i.snapGrid[o - 1]
                  , t = i.snapGrid[o];
                l - e <= (t - e) * a && (n -= i.params.slidesPerGroup)
            }
            return n = Math.max(n, 0),
            n = Math.min(n, i.slidesGrid.length - 1),
            i.slideTo(n, e, t, s)
        }
        function $e() {
            const e = this
              , {params: t, $wrapperEl: s} = e
              , a = "auto" === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView;
            let i, n = e.clickedIndex;
            if (t.loop) {
                if (e.animating)
                    return;
                i = parseInt(c(e.clickedSlide).attr("data-swiper-slide-index"), 10),
                t.centeredSlides ? n < e.loopedSlides - a / 2 || n > e.slides.length - e.loopedSlides + a / 2 ? (e.loopFix(),
                n = s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),
                J.nextTick(()=>{
                    e.slideTo(n)
                }
                )) : e.slideTo(n) : n > e.slides.length - a ? (e.loopFix(),
                n = s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),
                J.nextTick(()=>{
                    e.slideTo(n)
                }
                )) : e.slideTo(n)
            } else
                e.slideTo(n)
        }
        var Me = {
            slideTo: we,
            slideToLoop: xe,
            slideNext: Ee,
            slidePrev: Te,
            slideReset: Se,
            slideToClosest: Ce,
            slideToClickedSlide: $e
        };
        function Pe() {
            const e = this
              , {params: t, $wrapperEl: s} = e;
            s.children(`.${t.slideClass}.${t.slideDuplicateClass}`).remove();
            let a = s.children("." + t.slideClass);
            if (t.loopFillGroupWithBlank) {
                const e = t.slidesPerGroup - a.length % t.slidesPerGroup;
                if (e !== t.slidesPerGroup) {
                    for (let a = 0; a < e; a += 1) {
                        const e = c(n.createElement("div")).addClass(`${t.slideClass} ${t.slideBlankClass}`);
                        s.append(e)
                    }
                    a = s.children("." + t.slideClass)
                }
            }
            "auto" !== t.slidesPerView || t.loopedSlides || (t.loopedSlides = a.length),
            e.loopedSlides = Math.ceil(parseFloat(t.loopedSlides || t.slidesPerView, 10)),
            e.loopedSlides += t.loopAdditionalSlides,
            e.loopedSlides > a.length && (e.loopedSlides = a.length);
            const i = []
              , r = [];
            a.each((t,s)=>{
                const n = c(s);
                t < e.loopedSlides && r.push(s),
                t < a.length && t >= a.length - e.loopedSlides && i.push(s),
                n.attr("data-swiper-slide-index", t)
            }
            );
            for (let n = 0; n < r.length; n += 1)
                s.append(c(r[n].cloneNode(!0)).addClass(t.slideDuplicateClass));
            for (let n = i.length - 1; n >= 0; n -= 1)
                s.prepend(c(i[n].cloneNode(!0)).addClass(t.slideDuplicateClass))
        }
        function ke() {
            const e = this;
            e.emit("beforeLoopFix");
            const {activeIndex: t, slides: s, loopedSlides: a, allowSlidePrev: i, allowSlideNext: n, snapGrid: r, rtlTranslate: o} = e;
            let l;
            e.allowSlidePrev = !0,
            e.allowSlideNext = !0;
            const d = -r[t]
              , c = d - e.getTranslate();
            if (t < a) {
                l = s.length - 3 * a + t,
                l += a;
                const i = e.slideTo(l, 0, !1, !0);
                i && 0 !== c && e.setTranslate((o ? -e.translate : e.translate) - c)
            } else if (t >= s.length - a) {
                l = -s.length + t + a,
                l += a;
                const i = e.slideTo(l, 0, !1, !0);
                i && 0 !== c && e.setTranslate((o ? -e.translate : e.translate) - c)
            }
            e.allowSlidePrev = i,
            e.allowSlideNext = n,
            e.emit("loopFix")
        }
        function ze() {
            const e = this
              , {$wrapperEl: t, params: s, slides: a} = e;
            t.children(`.${s.slideClass}.${s.slideDuplicateClass},.${s.slideClass}.${s.slideBlankClass}`).remove(),
            a.removeAttr("data-swiper-slide-index")
        }
        var Le = {
            loopCreate: Pe,
            loopFix: ke,
            loopDestroy: ze
        };
        function Ie(e) {
            const t = this;
            if (Z.touch || !t.params.simulateTouch || t.params.watchOverflow && t.isLocked || t.params.cssMode)
                return;
            const s = t.el;
            s.style.cursor = "move",
            s.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab",
            s.style.cursor = e ? "-moz-grabbin" : "-moz-grab",
            s.style.cursor = e ? "grabbing" : "grab"
        }
        function Oe() {
            const e = this;
            Z.touch || e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.el.style.cursor = "")
        }
        var De = {
            setGrabCursor: Ie,
            unsetGrabCursor: Oe
        };
        function Ae(e) {
            const t = this
              , {$wrapperEl: s, params: a} = t;
            if (a.loop && t.loopDestroy(),
            "object" === typeof e && "length"in e)
                for (let i = 0; i < e.length; i += 1)
                    e[i] && s.append(e[i]);
            else
                s.append(e);
            a.loop && t.loopCreate(),
            a.observer && Z.observer || t.update()
        }
        function Ge(e) {
            const t = this
              , {params: s, $wrapperEl: a, activeIndex: i} = t;
            s.loop && t.loopDestroy();
            let n = i + 1;
            if ("object" === typeof e && "length"in e) {
                for (let t = 0; t < e.length; t += 1)
                    e[t] && a.prepend(e[t]);
                n = i + e.length
            } else
                a.prepend(e);
            s.loop && t.loopCreate(),
            s.observer && Z.observer || t.update(),
            t.slideTo(n, 0, !1)
        }
        function Ne(e, t) {
            const s = this
              , {$wrapperEl: a, params: i, activeIndex: n} = s;
            let r = n;
            i.loop && (r -= s.loopedSlides,
            s.loopDestroy(),
            s.slides = a.children("." + i.slideClass));
            const o = s.slides.length;
            if (e <= 0)
                return void s.prependSlide(t);
            if (e >= o)
                return void s.appendSlide(t);
            let l = r > e ? r + 1 : r;
            const d = [];
            for (let c = o - 1; c >= e; c -= 1) {
                const e = s.slides.eq(c);
                e.remove(),
                d.unshift(e)
            }
            if ("object" === typeof t && "length"in t) {
                for (let e = 0; e < t.length; e += 1)
                    t[e] && a.append(t[e]);
                l = r > e ? r + t.length : r
            } else
                a.append(t);
            for (let c = 0; c < d.length; c += 1)
                a.append(d[c]);
            i.loop && s.loopCreate(),
            i.observer && Z.observer || s.update(),
            i.loop ? s.slideTo(l + s.loopedSlides, 0, !1) : s.slideTo(l, 0, !1)
        }
        function He(e) {
            const t = this
              , {params: s, $wrapperEl: a, activeIndex: i} = t;
            let n = i;
            s.loop && (n -= t.loopedSlides,
            t.loopDestroy(),
            t.slides = a.children("." + s.slideClass));
            let r, o = n;
            if ("object" === typeof e && "length"in e) {
                for (let s = 0; s < e.length; s += 1)
                    r = e[s],
                    t.slides[r] && t.slides.eq(r).remove(),
                    r < o && (o -= 1);
                o = Math.max(o, 0)
            } else
                r = e,
                t.slides[r] && t.slides.eq(r).remove(),
                r < o && (o -= 1),
                o = Math.max(o, 0);
            s.loop && t.loopCreate(),
            s.observer && Z.observer || t.update(),
            s.loop ? t.slideTo(o + t.loopedSlides, 0, !1) : t.slideTo(o, 0, !1)
        }
        function Be() {
            const e = this
              , t = [];
            for (let s = 0; s < e.slides.length; s += 1)
                t.push(s);
            e.removeSlide(t)
        }
        var Xe = {
            appendSlide: Ae,
            prependSlide: Ge,
            addSlide: Ne,
            removeSlide: He,
            removeAllSlides: Be
        };
        const Ve = function() {
            const e = o.navigator.platform
              , t = o.navigator.userAgent
              , s = {
                ios: !1,
                android: !1,
                androidChrome: !1,
                desktop: !1,
                iphone: !1,
                ipod: !1,
                ipad: !1,
                edge: !1,
                ie: !1,
                firefox: !1,
                macos: !1,
                windows: !1,
                cordova: !(!o.cordova && !o.phonegap),
                phonegap: !(!o.cordova && !o.phonegap),
                electron: !1
            }
              , a = o.screen.width
              , i = o.screen.height
              , n = t.match(/(Android);?[\s\/]+([\d.]+)?/);
            let r = t.match(/(iPad).*OS\s([\d_]+)/);
            const l = t.match(/(iPod)(.*OS\s([\d_]+))?/)
              , d = !r && t.match(/(iPhone\sOS|iOS)\s([\d_]+)/)
              , c = t.indexOf("MSIE ") >= 0 || t.indexOf("Trident/") >= 0
              , p = t.indexOf("Edge/") >= 0
              , u = t.indexOf("Gecko/") >= 0 && t.indexOf("Firefox/") >= 0
              , h = "Win32" === e
              , m = t.toLowerCase().indexOf("electron") >= 0;
            let f = "MacIntel" === e;
            return !r && f && Z.touch && (1024 === a && 1366 === i || 834 === a && 1194 === i || 834 === a && 1112 === i || 768 === a && 1024 === i) && (r = t.match(/(Version)\/([\d.]+)/),
            f = !1),
            s.ie = c,
            s.edge = p,
            s.firefox = u,
            n && !h && (s.os = "android",
            s.osVersion = n[2],
            s.android = !0,
            s.androidChrome = t.toLowerCase().indexOf("chrome") >= 0),
            (r || d || l) && (s.os = "ios",
            s.ios = !0),
            d && !l && (s.osVersion = d[2].replace(/_/g, "."),
            s.iphone = !0),
            r && (s.osVersion = r[2].replace(/_/g, "."),
            s.ipad = !0),
            l && (s.osVersion = l[3] ? l[3].replace(/_/g, ".") : null,
            s.ipod = !0),
            s.ios && s.osVersion && t.indexOf("Version/") >= 0 && "10" === s.osVersion.split(".")[0] && (s.osVersion = t.toLowerCase().split("version/")[1].split(" ")[0]),
            s.webView = !(!(d || r || l) || !t.match(/.*AppleWebKit(?!.*Safari)/i) && !o.navigator.standalone) || o.matchMedia && o.matchMedia("(display-mode: standalone)").matches,
            s.webview = s.webView,
            s.standalone = s.webView,
            s.desktop = !(s.ios || s.android) || m,
            s.desktop && (s.electron = m,
            s.macos = f,
            s.windows = h,
            s.macos && (s.os = "macos"),
            s.windows && (s.os = "windows")),
            s.pixelRatio = o.devicePixelRatio || 1,
            s
        }();
        function Ye(e) {
            const t = this
              , s = t.touchEventsData
              , {params: a, touches: i} = t;
            if (t.animating && a.preventInteractionOnTransition)
                return;
            let r = e;
            r.originalEvent && (r = r.originalEvent);
            const l = c(r.target);
            if ("wrapper" === a.touchEventsTarget && !l.closest(t.wrapperEl).length)
                return;
            if (s.isTouchEvent = "touchstart" === r.type,
            !s.isTouchEvent && "which"in r && 3 === r.which)
                return;
            if (!s.isTouchEvent && "button"in r && r.button > 0)
                return;
            if (s.isTouched && s.isMoved)
                return;
            if (a.noSwiping && l.closest(a.noSwipingSelector ? a.noSwipingSelector : "." + a.noSwipingClass)[0])
                return void (t.allowClick = !0);
            if (a.swipeHandler && !l.closest(a.swipeHandler)[0])
                return;
            i.currentX = "touchstart" === r.type ? r.targetTouches[0].pageX : r.pageX,
            i.currentY = "touchstart" === r.type ? r.targetTouches[0].pageY : r.pageY;
            const d = i.currentX
              , p = i.currentY
              , u = a.edgeSwipeDetection || a.iOSEdgeSwipeDetection
              , h = a.edgeSwipeThreshold || a.iOSEdgeSwipeThreshold;
            if (!u || !(d <= h || d >= o.screen.width - h)) {
                if (J.extend(s, {
                    isTouched: !0,
                    isMoved: !1,
                    allowTouchCallbacks: !0,
                    isScrolling: void 0,
                    startMoving: void 0
                }),
                i.startX = d,
                i.startY = p,
                s.touchStartTime = J.now(),
                t.allowClick = !0,
                t.updateSize(),
                t.swipeDirection = void 0,
                a.threshold > 0 && (s.allowThresholdMove = !1),
                "touchstart" !== r.type) {
                    let e = !0;
                    l.is(s.formElements) && (e = !1),
                    n.activeElement && c(n.activeElement).is(s.formElements) && n.activeElement !== l[0] && n.activeElement.blur();
                    const i = e && t.allowTouchMove && a.touchStartPreventDefault;
                    (a.touchStartForcePreventDefault || i) && r.preventDefault()
                }
                t.emit("touchStart", r)
            }
        }
        function Fe(e) {
            const t = this
              , s = t.touchEventsData
              , {params: a, touches: i, rtlTranslate: r} = t;
            let o = e;
            if (o.originalEvent && (o = o.originalEvent),
            !s.isTouched)
                return void (s.startMoving && s.isScrolling && t.emit("touchMoveOpposite", o));
            if (s.isTouchEvent && "touchmove" !== o.type)
                return;
            const l = "touchmove" === o.type && o.targetTouches && (o.targetTouches[0] || o.changedTouches[0])
              , d = "touchmove" === o.type ? l.pageX : o.pageX
              , p = "touchmove" === o.type ? l.pageY : o.pageY;
            if (o.preventedByNestedSwiper)
                return i.startX = d,
                void (i.startY = p);
            if (!t.allowTouchMove)
                return t.allowClick = !1,
                void (s.isTouched && (J.extend(i, {
                    startX: d,
                    startY: p,
                    currentX: d,
                    currentY: p
                }),
                s.touchStartTime = J.now()));
            if (s.isTouchEvent && a.touchReleaseOnEdges && !a.loop)
                if (t.isVertical()) {
                    if (p < i.startY && t.translate <= t.maxTranslate() || p > i.startY && t.translate >= t.minTranslate())
                        return s.isTouched = !1,
                        void (s.isMoved = !1)
                } else if (d < i.startX && t.translate <= t.maxTranslate() || d > i.startX && t.translate >= t.minTranslate())
                    return;
            if (s.isTouchEvent && n.activeElement && o.target === n.activeElement && c(o.target).is(s.formElements))
                return s.isMoved = !0,
                void (t.allowClick = !1);
            if (s.allowTouchCallbacks && t.emit("touchMove", o),
            o.targetTouches && o.targetTouches.length > 1)
                return;
            i.currentX = d,
            i.currentY = p;
            const u = i.currentX - i.startX
              , h = i.currentY - i.startY;
            if (t.params.threshold && Math.sqrt(u ** 2 + h ** 2) < t.params.threshold)
                return;
            if ("undefined" === typeof s.isScrolling) {
                let e;
                t.isHorizontal() && i.currentY === i.startY || t.isVertical() && i.currentX === i.startX ? s.isScrolling = !1 : u * u + h * h >= 25 && (e = 180 * Math.atan2(Math.abs(h), Math.abs(u)) / Math.PI,
                s.isScrolling = t.isHorizontal() ? e > a.touchAngle : 90 - e > a.touchAngle)
            }
            if (s.isScrolling && t.emit("touchMoveOpposite", o),
            "undefined" === typeof s.startMoving && (i.currentX === i.startX && i.currentY === i.startY || (s.startMoving = !0)),
            s.isScrolling)
                return void (s.isTouched = !1);
            if (!s.startMoving)
                return;
            t.allowClick = !1,
            !a.cssMode && o.cancelable && o.preventDefault(),
            a.touchMoveStopPropagation && !a.nested && o.stopPropagation(),
            s.isMoved || (a.loop && t.loopFix(),
            s.startTranslate = t.getTranslate(),
            t.setTransition(0),
            t.animating && t.$wrapperEl.trigger("webkitTransitionEnd transitionend"),
            s.allowMomentumBounce = !1,
            !a.grabCursor || !0 !== t.allowSlideNext && !0 !== t.allowSlidePrev || t.setGrabCursor(!0),
            t.emit("sliderFirstMove", o)),
            t.emit("sliderMove", o),
            s.isMoved = !0;
            let m = t.isHorizontal() ? u : h;
            i.diff = m,
            m *= a.touchRatio,
            r && (m = -m),
            t.swipeDirection = m > 0 ? "prev" : "next",
            s.currentTranslate = m + s.startTranslate;
            let f = !0
              , g = a.resistanceRatio;
            if (a.touchReleaseOnEdges && (g = 0),
            m > 0 && s.currentTranslate > t.minTranslate() ? (f = !1,
            a.resistance && (s.currentTranslate = t.minTranslate() - 1 + (-t.minTranslate() + s.startTranslate + m) ** g)) : m < 0 && s.currentTranslate < t.maxTranslate() && (f = !1,
            a.resistance && (s.currentTranslate = t.maxTranslate() + 1 - (t.maxTranslate() - s.startTranslate - m) ** g)),
            f && (o.preventedByNestedSwiper = !0),
            !t.allowSlideNext && "next" === t.swipeDirection && s.currentTranslate < s.startTranslate && (s.currentTranslate = s.startTranslate),
            !t.allowSlidePrev && "prev" === t.swipeDirection && s.currentTranslate > s.startTranslate && (s.currentTranslate = s.startTranslate),
            a.threshold > 0) {
                if (!(Math.abs(m) > a.threshold || s.allowThresholdMove))
                    return void (s.currentTranslate = s.startTranslate);
                if (!s.allowThresholdMove)
                    return s.allowThresholdMove = !0,
                    i.startX = i.currentX,
                    i.startY = i.currentY,
                    s.currentTranslate = s.startTranslate,
                    void (i.diff = t.isHorizontal() ? i.currentX - i.startX : i.currentY - i.startY)
            }
            a.followFinger && !a.cssMode && ((a.freeMode || a.watchSlidesProgress || a.watchSlidesVisibility) && (t.updateActiveIndex(),
            t.updateSlidesClasses()),
            a.freeMode && (0 === s.velocities.length && s.velocities.push({
                position: i[t.isHorizontal() ? "startX" : "startY"],
                time: s.touchStartTime
            }),
            s.velocities.push({
                position: i[t.isHorizontal() ? "currentX" : "currentY"],
                time: J.now()
            })),
            t.updateProgress(s.currentTranslate),
            t.setTranslate(s.currentTranslate))
        }
        function We(e) {
            const t = this
              , s = t.touchEventsData
              , {params: a, touches: i, rtlTranslate: n, $wrapperEl: r, slidesGrid: o, snapGrid: l} = t;
            let d = e;
            if (d.originalEvent && (d = d.originalEvent),
            s.allowTouchCallbacks && t.emit("touchEnd", d),
            s.allowTouchCallbacks = !1,
            !s.isTouched)
                return s.isMoved && a.grabCursor && t.setGrabCursor(!1),
                s.isMoved = !1,
                void (s.startMoving = !1);
            a.grabCursor && s.isMoved && s.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1);
            const c = J.now()
              , p = c - s.touchStartTime;
            if (t.allowClick && (t.updateClickedSlide(d),
            t.emit("tap click", d),
            p < 300 && c - s.lastClickTime < 300 && t.emit("doubleTap doubleClick", d)),
            s.lastClickTime = J.now(),
            J.nextTick(()=>{
                t.destroyed || (t.allowClick = !0)
            }
            ),
            !s.isTouched || !s.isMoved || !t.swipeDirection || 0 === i.diff || s.currentTranslate === s.startTranslate)
                return s.isTouched = !1,
                s.isMoved = !1,
                void (s.startMoving = !1);
            let u;
            if (s.isTouched = !1,
            s.isMoved = !1,
            s.startMoving = !1,
            u = a.followFinger ? n ? t.translate : -t.translate : -s.currentTranslate,
            a.cssMode)
                return;
            if (a.freeMode) {
                if (u < -t.minTranslate())
                    return void t.slideTo(t.activeIndex);
                if (u > -t.maxTranslate())
                    return void (t.slides.length < l.length ? t.slideTo(l.length - 1) : t.slideTo(t.slides.length - 1));
                if (a.freeModeMomentum) {
                    if (s.velocities.length > 1) {
                        const e = s.velocities.pop()
                          , i = s.velocities.pop()
                          , n = e.position - i.position
                          , r = e.time - i.time;
                        t.velocity = n / r,
                        t.velocity /= 2,
                        Math.abs(t.velocity) < a.freeModeMinimumVelocity && (t.velocity = 0),
                        (r > 150 || J.now() - e.time > 300) && (t.velocity = 0)
                    } else
                        t.velocity = 0;
                    t.velocity *= a.freeModeMomentumVelocityRatio,
                    s.velocities.length = 0;
                    let e = 1e3 * a.freeModeMomentumRatio;
                    const i = t.velocity * e;
                    let o = t.translate + i;
                    n && (o = -o);
                    let d, c = !1;
                    const p = 20 * Math.abs(t.velocity) * a.freeModeMomentumBounceRatio;
                    let u;
                    if (o < t.maxTranslate())
                        a.freeModeMomentumBounce ? (o + t.maxTranslate() < -p && (o = t.maxTranslate() - p),
                        d = t.maxTranslate(),
                        c = !0,
                        s.allowMomentumBounce = !0) : o = t.maxTranslate(),
                        a.loop && a.centeredSlides && (u = !0);
                    else if (o > t.minTranslate())
                        a.freeModeMomentumBounce ? (o - t.minTranslate() > p && (o = t.minTranslate() + p),
                        d = t.minTranslate(),
                        c = !0,
                        s.allowMomentumBounce = !0) : o = t.minTranslate(),
                        a.loop && a.centeredSlides && (u = !0);
                    else if (a.freeModeSticky) {
                        let e;
                        for (let t = 0; t < l.length; t += 1)
                            if (l[t] > -o) {
                                e = t;
                                break
                            }
                        o = Math.abs(l[e] - o) < Math.abs(l[e - 1] - o) || "next" === t.swipeDirection ? l[e] : l[e - 1],
                        o = -o
                    }
                    if (u && t.once("transitionEnd", ()=>{
                        t.loopFix()
                    }
                    ),
                    0 !== t.velocity) {
                        if (e = n ? Math.abs((-o - t.translate) / t.velocity) : Math.abs((o - t.translate) / t.velocity),
                        a.freeModeSticky) {
                            const s = Math.abs((n ? -o : o) - t.translate)
                              , i = t.slidesSizesGrid[t.activeIndex];
                            e = s < i ? a.speed : s < 2 * i ? 1.5 * a.speed : 2.5 * a.speed
                        }
                    } else if (a.freeModeSticky)
                        return void t.slideToClosest();
                    a.freeModeMomentumBounce && c ? (t.updateProgress(d),
                    t.setTransition(e),
                    t.setTranslate(o),
                    t.transitionStart(!0, t.swipeDirection),
                    t.animating = !0,
                    r.transitionEnd(()=>{
                        t && !t.destroyed && s.allowMomentumBounce && (t.emit("momentumBounce"),
                        t.setTransition(a.speed),
                        setTimeout(()=>{
                            t.setTranslate(d),
                            r.transitionEnd(()=>{
                                t && !t.destroyed && t.transitionEnd()
                            }
                            )
                        }
                        , 0))
                    }
                    )) : t.velocity ? (t.updateProgress(o),
                    t.setTransition(e),
                    t.setTranslate(o),
                    t.transitionStart(!0, t.swipeDirection),
                    t.animating || (t.animating = !0,
                    r.transitionEnd(()=>{
                        t && !t.destroyed && t.transitionEnd()
                    }
                    ))) : t.updateProgress(o),
                    t.updateActiveIndex(),
                    t.updateSlidesClasses()
                } else if (a.freeModeSticky)
                    return void t.slideToClosest();
                return void ((!a.freeModeMomentum || p >= a.longSwipesMs) && (t.updateProgress(),
                t.updateActiveIndex(),
                t.updateSlidesClasses()))
            }
            let h = 0
              , m = t.slidesSizesGrid[0];
            for (let v = 0; v < o.length; v += v < a.slidesPerGroupSkip ? 1 : a.slidesPerGroup) {
                const e = v < a.slidesPerGroupSkip - 1 ? 1 : a.slidesPerGroup;
                "undefined" !== typeof o[v + e] ? u >= o[v] && u < o[v + e] && (h = v,
                m = o[v + e] - o[v]) : u >= o[v] && (h = v,
                m = o[o.length - 1] - o[o.length - 2])
            }
            const f = (u - o[h]) / m
              , g = h < a.slidesPerGroupSkip - 1 ? 1 : a.slidesPerGroup;
            if (p > a.longSwipesMs) {
                if (!a.longSwipes)
                    return void t.slideTo(t.activeIndex);
                "next" === t.swipeDirection && (f >= a.longSwipesRatio ? t.slideTo(h + g) : t.slideTo(h)),
                "prev" === t.swipeDirection && (f > 1 - a.longSwipesRatio ? t.slideTo(h + g) : t.slideTo(h))
            } else {
                if (!a.shortSwipes)
                    return void t.slideTo(t.activeIndex);
                const e = t.navigation && (d.target === t.navigation.nextEl || d.target === t.navigation.prevEl);
                e ? d.target === t.navigation.nextEl ? t.slideTo(h + g) : t.slideTo(h) : ("next" === t.swipeDirection && t.slideTo(h + g),
                "prev" === t.swipeDirection && t.slideTo(h))
            }
        }
        function Re() {
            const e = this
              , {params: t, el: s} = e;
            if (s && 0 === s.offsetWidth)
                return;
            t.breakpoints && e.setBreakpoint();
            const {allowSlideNext: a, allowSlidePrev: i, snapGrid: n} = e;
            e.allowSlideNext = !0,
            e.allowSlidePrev = !0,
            e.updateSize(),
            e.updateSlides(),
            e.updateSlidesClasses(),
            ("auto" === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0),
            e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(),
            e.allowSlidePrev = i,
            e.allowSlideNext = a,
            e.params.watchOverflow && n !== e.snapGrid && e.checkOverflow()
        }
        function qe(e) {
            const t = this;
            t.allowClick || (t.params.preventClicks && e.preventDefault(),
            t.params.preventClicksPropagation && t.animating && (e.stopPropagation(),
            e.stopImmediatePropagation()))
        }
        function je() {
            const e = this
              , {wrapperEl: t, rtlTranslate: s} = e;
            let a;
            e.previousTranslate = e.translate,
            e.isHorizontal() ? e.translate = s ? t.scrollWidth - t.offsetWidth - t.scrollLeft : -t.scrollLeft : e.translate = -t.scrollTop,
            -0 === e.translate && (e.translate = 0),
            e.updateActiveIndex(),
            e.updateSlidesClasses();
            const i = e.maxTranslate() - e.minTranslate();
            a = 0 === i ? 0 : (e.translate - e.minTranslate()) / i,
            a !== e.progress && e.updateProgress(s ? -e.translate : e.translate),
            e.emit("setTranslate", e.translate, !1)
        }
        let _e = !1;
        function Ke() {}
        function Ue() {
            const e = this
              , {params: t, touchEvents: s, el: a, wrapperEl: i} = e;
            e.onTouchStart = Ye.bind(e),
            e.onTouchMove = Fe.bind(e),
            e.onTouchEnd = We.bind(e),
            t.cssMode && (e.onScroll = je.bind(e)),
            e.onClick = qe.bind(e);
            const r = !!t.nested;
            if (!Z.touch && Z.pointerEvents)
                a.addEventListener(s.start, e.onTouchStart, !1),
                n.addEventListener(s.move, e.onTouchMove, r),
                n.addEventListener(s.end, e.onTouchEnd, !1);
            else {
                if (Z.touch) {
                    const i = !("touchstart" !== s.start || !Z.passiveListener || !t.passiveListeners) && {
                        passive: !0,
                        capture: !1
                    };
                    a.addEventListener(s.start, e.onTouchStart, i),
                    a.addEventListener(s.move, e.onTouchMove, Z.passiveListener ? {
                        passive: !1,
                        capture: r
                    } : r),
                    a.addEventListener(s.end, e.onTouchEnd, i),
                    s.cancel && a.addEventListener(s.cancel, e.onTouchEnd, i),
                    _e || (n.addEventListener("touchstart", Ke),
                    _e = !0)
                }
                (t.simulateTouch && !Ve.ios && !Ve.android || t.simulateTouch && !Z.touch && Ve.ios) && (a.addEventListener("mousedown", e.onTouchStart, !1),
                n.addEventListener("mousemove", e.onTouchMove, r),
                n.addEventListener("mouseup", e.onTouchEnd, !1))
            }
            (t.preventClicks || t.preventClicksPropagation) && a.addEventListener("click", e.onClick, !0),
            t.cssMode && i.addEventListener("scroll", e.onScroll),
            t.updateOnWindowResize ? e.on(Ve.ios || Ve.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", Re, !0) : e.on("observerUpdate", Re, !0)
        }
        function Je() {
            const e = this
              , {params: t, touchEvents: s, el: a, wrapperEl: i} = e
              , r = !!t.nested;
            if (!Z.touch && Z.pointerEvents)
                a.removeEventListener(s.start, e.onTouchStart, !1),
                n.removeEventListener(s.move, e.onTouchMove, r),
                n.removeEventListener(s.end, e.onTouchEnd, !1);
            else {
                if (Z.touch) {
                    const i = !("onTouchStart" !== s.start || !Z.passiveListener || !t.passiveListeners) && {
                        passive: !0,
                        capture: !1
                    };
                    a.removeEventListener(s.start, e.onTouchStart, i),
                    a.removeEventListener(s.move, e.onTouchMove, r),
                    a.removeEventListener(s.end, e.onTouchEnd, i),
                    s.cancel && a.removeEventListener(s.cancel, e.onTouchEnd, i)
                }
                (t.simulateTouch && !Ve.ios && !Ve.android || t.simulateTouch && !Z.touch && Ve.ios) && (a.removeEventListener("mousedown", e.onTouchStart, !1),
                n.removeEventListener("mousemove", e.onTouchMove, r),
                n.removeEventListener("mouseup", e.onTouchEnd, !1))
            }
            (t.preventClicks || t.preventClicksPropagation) && a.removeEventListener("click", e.onClick, !0),
            t.cssMode && i.removeEventListener("scroll", e.onScroll),
            e.off(Ve.ios || Ve.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", Re)
        }
        var Ze = {
            attachEvents: Ue,
            detachEvents: Je
        };
        function Qe() {
            const e = this
              , {activeIndex: t, initialized: s, loopedSlides: a=0, params: i, $el: n} = e
              , r = i.breakpoints;
            if (!r || r && 0 === Object.keys(r).length)
                return;
            const o = e.getBreakpoint(r);
            if (o && e.currentBreakpoint !== o) {
                const l = o in r ? r[o] : void 0;
                l && ["slidesPerView", "spaceBetween", "slidesPerGroup", "slidesPerGroupSkip", "slidesPerColumn"].forEach(e=>{
                    const t = l[e];
                    "undefined" !== typeof t && (l[e] = "slidesPerView" !== e || "AUTO" !== t && "auto" !== t ? "slidesPerView" === e ? parseFloat(t) : parseInt(t, 10) : "auto")
                }
                );
                const d = l || e.originalParams
                  , c = i.slidesPerColumn > 1
                  , p = d.slidesPerColumn > 1;
                c && !p ? n.removeClass(`${i.containerModifierClass}multirow ${i.containerModifierClass}multirow-column`) : !c && p && (n.addClass(i.containerModifierClass + "multirow"),
                "column" === d.slidesPerColumnFill && n.addClass(i.containerModifierClass + "multirow-column"));
                const u = d.direction && d.direction !== i.direction
                  , h = i.loop && (d.slidesPerView !== i.slidesPerView || u);
                u && s && e.changeDirection(),
                J.extend(e.params, d),
                J.extend(e, {
                    allowTouchMove: e.params.allowTouchMove,
                    allowSlideNext: e.params.allowSlideNext,
                    allowSlidePrev: e.params.allowSlidePrev
                }),
                e.currentBreakpoint = o,
                h && s && (e.loopDestroy(),
                e.loopCreate(),
                e.updateSlides(),
                e.slideTo(t - a + e.loopedSlides, 0, !1)),
                e.emit("breakpoint", d)
            }
        }
        function et(e) {
            if (!e)
                return;
            let t = !1;
            const s = Object.keys(e).map(e=>{
                if ("string" === typeof e && 0 === e.indexOf("@")) {
                    const t = parseFloat(e.substr(1))
                      , s = o.innerHeight * t;
                    return {
                        value: s,
                        point: e
                    }
                }
                return {
                    value: e,
                    point: e
                }
            }
            );
            s.sort((e,t)=>parseInt(e.value, 10) - parseInt(t.value, 10));
            for (let a = 0; a < s.length; a += 1) {
                const {point: e, value: i} = s[a];
                i <= o.innerWidth && (t = e)
            }
            return t || "max"
        }
        var tt = {
            setBreakpoint: Qe,
            getBreakpoint: et
        };
        function st() {
            const e = this
              , {classNames: t, params: s, rtl: a, $el: i} = e
              , n = [];
            n.push("initialized"),
            n.push(s.direction),
            s.freeMode && n.push("free-mode"),
            s.autoHeight && n.push("autoheight"),
            a && n.push("rtl"),
            s.slidesPerColumn > 1 && (n.push("multirow"),
            "column" === s.slidesPerColumnFill && n.push("multirow-column")),
            Ve.android && n.push("android"),
            Ve.ios && n.push("ios"),
            s.cssMode && n.push("css-mode"),
            n.forEach(e=>{
                t.push(s.containerModifierClass + e)
            }
            ),
            i.addClass(t.join(" "))
        }
        function at() {
            const e = this
              , {$el: t, classNames: s} = e;
            t.removeClass(s.join(" "))
        }
        var it = {
            addClasses: st,
            removeClasses: at
        };
        function nt(e, t, s, a, i, n) {
            let r;
            function l() {
                n && n()
            }
            const d = c(e).parent("picture")[0];
            d || e.complete && i ? l() : t ? (r = new o.Image,
            r.onload = l,
            r.onerror = l,
            a && (r.sizes = a),
            s && (r.srcset = s),
            t && (r.src = t)) : l()
        }
        function rt() {
            const e = this;
            function t() {
                "undefined" !== typeof e && null !== e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1),
                e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(),
                e.emit("imagesReady")))
            }
            e.imagesToLoad = e.$el.find("img");
            for (let s = 0; s < e.imagesToLoad.length; s += 1) {
                const a = e.imagesToLoad[s];
                e.loadImage(a, a.currentSrc || a.getAttribute("src"), a.srcset || a.getAttribute("srcset"), a.sizes || a.getAttribute("sizes"), !0, t)
            }
        }
        var ot = {
            loadImage: nt,
            preloadImages: rt
        };
        function lt() {
            const e = this
              , t = e.params
              , s = e.isLocked
              , a = e.slides.length > 0 && t.slidesOffsetBefore + t.spaceBetween * (e.slides.length - 1) + e.slides[0].offsetWidth * e.slides.length;
            t.slidesOffsetBefore && t.slidesOffsetAfter && a ? e.isLocked = a <= e.size : e.isLocked = 1 === e.snapGrid.length,
            e.allowSlideNext = !e.isLocked,
            e.allowSlidePrev = !e.isLocked,
            s !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"),
            s && s !== e.isLocked && (e.isEnd = !1,
            e.navigation && e.navigation.update())
        }
        var dt = {
            checkOverflow: lt
        }
          , ct = {
            init: !0,
            direction: "horizontal",
            touchEventsTarget: "container",
            initialSlide: 0,
            speed: 300,
            cssMode: !1,
            updateOnWindowResize: !0,
            preventInteractionOnTransition: !1,
            edgeSwipeDetection: !1,
            edgeSwipeThreshold: 20,
            freeMode: !1,
            freeModeMomentum: !0,
            freeModeMomentumRatio: 1,
            freeModeMomentumBounce: !0,
            freeModeMomentumBounceRatio: 1,
            freeModeMomentumVelocityRatio: 1,
            freeModeSticky: !1,
            freeModeMinimumVelocity: .02,
            autoHeight: !1,
            setWrapperSize: !1,
            virtualTranslate: !1,
            effect: "slide",
            breakpoints: void 0,
            spaceBetween: 0,
            slidesPerView: 1,
            slidesPerColumn: 1,
            slidesPerColumnFill: "column",
            slidesPerGroup: 1,
            slidesPerGroupSkip: 0,
            centeredSlides: !1,
            centeredSlidesBounds: !1,
            slidesOffsetBefore: 0,
            slidesOffsetAfter: 0,
            normalizeSlideIndex: !0,
            centerInsufficientSlides: !1,
            watchOverflow: !1,
            roundLengths: !1,
            touchRatio: 1,
            touchAngle: 45,
            simulateTouch: !0,
            shortSwipes: !0,
            longSwipes: !0,
            longSwipesRatio: .5,
            longSwipesMs: 300,
            followFinger: !0,
            allowTouchMove: !0,
            threshold: 0,
            touchMoveStopPropagation: !1,
            touchStartPreventDefault: !0,
            touchStartForcePreventDefault: !1,
            touchReleaseOnEdges: !1,
            uniqueNavElements: !0,
            resistance: !0,
            resistanceRatio: .85,
            watchSlidesProgress: !1,
            watchSlidesVisibility: !1,
            grabCursor: !1,
            preventClicks: !0,
            preventClicksPropagation: !0,
            slideToClickedSlide: !1,
            preloadImages: !0,
            updateOnImagesReady: !0,
            loop: !1,
            loopAdditionalSlides: 0,
            loopedSlides: null,
            loopFillGroupWithBlank: !1,
            allowSlidePrev: !0,
            allowSlideNext: !0,
            swipeHandler: null,
            noSwiping: !0,
            noSwipingClass: "swiper-no-swiping",
            noSwipingSelector: null,
            passiveListeners: !0,
            containerModifierClass: "swiper-container-",
            slideClass: "swiper-slide",
            slideBlankClass: "swiper-slide-invisible-blank",
            slideActiveClass: "swiper-slide-active",
            slideDuplicateActiveClass: "swiper-slide-duplicate-active",
            slideVisibleClass: "swiper-slide-visible",
            slideDuplicateClass: "swiper-slide-duplicate",
            slideNextClass: "swiper-slide-next",
            slideDuplicateNextClass: "swiper-slide-duplicate-next",
            slidePrevClass: "swiper-slide-prev",
            slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
            wrapperClass: "swiper-wrapper",
            runCallbacksOnInit: !0
        };
        const pt = {
            update: de,
            translate: fe,
            transition: ye,
            slide: Me,
            loop: Le,
            grabCursor: De,
            manipulation: Xe,
            events: Ze,
            breakpoints: tt,
            checkOverflow: dt,
            classes: it,
            images: ot
        }
          , ut = {};
        class ht extends Q {
            constructor(...e) {
                let t, s;
                1 === e.length && e[0].constructor && e[0].constructor === Object ? s = e[0] : [t,s] = e,
                s || (s = {}),
                s = J.extend({}, s),
                t && !s.el && (s.el = t),
                super(s),
                Object.keys(pt).forEach(e=>{
                    Object.keys(pt[e]).forEach(t=>{
                        ht.prototype[t] || (ht.prototype[t] = pt[e][t])
                    }
                    )
                }
                );
                const a = this;
                "undefined" === typeof a.modules && (a.modules = {}),
                Object.keys(a.modules).forEach(e=>{
                    const t = a.modules[e];
                    if (t.params) {
                        const e = Object.keys(t.params)[0]
                          , a = t.params[e];
                        if ("object" !== typeof a || null === a)
                            return;
                        if (!(e in s) || !("enabled"in a))
                            return;
                        !0 === s[e] && (s[e] = {
                            enabled: !0
                        }),
                        "object" !== typeof s[e] || "enabled"in s[e] || (s[e].enabled = !0),
                        s[e] || (s[e] = {
                            enabled: !1
                        })
                    }
                }
                );
                const i = J.extend({}, ct);
                a.useModulesParams(i),
                a.params = J.extend({}, i, ut, s),
                a.originalParams = J.extend({}, a.params),
                a.passedParams = J.extend({}, s),
                a.$ = c;
                const n = c(a.params.el);
                if (t = n[0],
                !t)
                    return;
                if (n.length > 1) {
                    const e = [];
                    return n.each((t,a)=>{
                        const i = J.extend({}, s, {
                            el: a
                        });
                        e.push(new ht(i))
                    }
                    ),
                    e
                }
                let r;
                return t.swiper = a,
                n.data("swiper", a),
                t && t.shadowRoot && t.shadowRoot.querySelector ? (r = c(t.shadowRoot.querySelector("." + a.params.wrapperClass)),
                r.children = e=>n.children(e)) : r = n.children("." + a.params.wrapperClass),
                J.extend(a, {
                    $el: n,
                    el: t,
                    $wrapperEl: r,
                    wrapperEl: r[0],
                    classNames: [],
                    slides: c(),
                    slidesGrid: [],
                    snapGrid: [],
                    slidesSizesGrid: [],
                    isHorizontal() {
                        return "horizontal" === a.params.direction
                    },
                    isVertical() {
                        return "vertical" === a.params.direction
                    },
                    rtl: "rtl" === t.dir.toLowerCase() || "rtl" === n.css("direction"),
                    rtlTranslate: "horizontal" === a.params.direction && ("rtl" === t.dir.toLowerCase() || "rtl" === n.css("direction")),
                    wrongRTL: "-webkit-box" === r.css("display"),
                    activeIndex: 0,
                    realIndex: 0,
                    isBeginning: !0,
                    isEnd: !1,
                    translate: 0,
                    previousTranslate: 0,
                    progress: 0,
                    velocity: 0,
                    animating: !1,
                    allowSlideNext: a.params.allowSlideNext,
                    allowSlidePrev: a.params.allowSlidePrev,
                    touchEvents: function() {
                        const e = ["touchstart", "touchmove", "touchend", "touchcancel"];
                        let t = ["mousedown", "mousemove", "mouseup"];
                        return Z.pointerEvents && (t = ["pointerdown", "pointermove", "pointerup"]),
                        a.touchEventsTouch = {
                            start: e[0],
                            move: e[1],
                            end: e[2],
                            cancel: e[3]
                        },
                        a.touchEventsDesktop = {
                            start: t[0],
                            move: t[1],
                            end: t[2]
                        },
                        Z.touch || !a.params.simulateTouch ? a.touchEventsTouch : a.touchEventsDesktop
                    }(),
                    touchEventsData: {
                        isTouched: void 0,
                        isMoved: void 0,
                        allowTouchCallbacks: void 0,
                        touchStartTime: void 0,
                        isScrolling: void 0,
                        currentTranslate: void 0,
                        startTranslate: void 0,
                        allowThresholdMove: void 0,
                        formElements: "input, select, option, textarea, button, video, label",
                        lastClickTime: J.now(),
                        clickTimeout: void 0,
                        velocities: [],
                        allowMomentumBounce: void 0,
                        isTouchEvent: void 0,
                        startMoving: void 0
                    },
                    allowClick: !0,
                    allowTouchMove: a.params.allowTouchMove,
                    touches: {
                        startX: 0,
                        startY: 0,
                        currentX: 0,
                        currentY: 0,
                        diff: 0
                    },
                    imagesToLoad: [],
                    imagesLoaded: 0
                }),
                a.useModules(),
                a.params.init && a.init(),
                a
            }
            slidesPerViewDynamic() {
                const e = this
                  , {params: t, slides: s, slidesGrid: a, size: i, activeIndex: n} = e;
                let r = 1;
                if (t.centeredSlides) {
                    let e, t = s[n].swiperSlideSize;
                    for (let a = n + 1; a < s.length; a += 1)
                        s[a] && !e && (t += s[a].swiperSlideSize,
                        r += 1,
                        t > i && (e = !0));
                    for (let a = n - 1; a >= 0; a -= 1)
                        s[a] && !e && (t += s[a].swiperSlideSize,
                        r += 1,
                        t > i && (e = !0))
                } else
                    for (let o = n + 1; o < s.length; o += 1)
                        a[o] - a[n] < i && (r += 1);
                return r
            }
            update() {
                const e = this;
                if (!e || e.destroyed)
                    return;
                const {snapGrid: t, params: s} = e;
                function a() {
                    const t = e.rtlTranslate ? -1 * e.translate : e.translate
                      , s = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
                    e.setTranslate(s),
                    e.updateActiveIndex(),
                    e.updateSlidesClasses()
                }
                let i;
                s.breakpoints && e.setBreakpoint(),
                e.updateSize(),
                e.updateSlides(),
                e.updateProgress(),
                e.updateSlidesClasses(),
                e.params.freeMode ? (a(),
                e.params.autoHeight && e.updateAutoHeight()) : (i = ("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0),
                i || a()),
                s.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
                e.emit("update")
            }
            changeDirection(e, t=!0) {
                const s = this
                  , a = s.params.direction;
                return e || (e = "horizontal" === a ? "vertical" : "horizontal"),
                e === a || "horizontal" !== e && "vertical" !== e || (s.$el.removeClass(`${s.params.containerModifierClass}${a}`).addClass(`${s.params.containerModifierClass}${e}`),
                s.params.direction = e,
                s.slides.each((t,s)=>{
                    "vertical" === e ? s.style.width = "" : s.style.height = ""
                }
                ),
                s.emit("changeDirection"),
                t && s.update()),
                s
            }
            init() {
                const e = this;
                e.initialized || (e.emit("beforeInit"),
                e.params.breakpoints && e.setBreakpoint(),
                e.addClasses(),
                e.params.loop && e.loopCreate(),
                e.updateSize(),
                e.updateSlides(),
                e.params.watchOverflow && e.checkOverflow(),
                e.params.grabCursor && e.setGrabCursor(),
                e.params.preloadImages && e.preloadImages(),
                e.params.loop ? e.slideTo(e.params.initialSlide + e.loopedSlides, 0, e.params.runCallbacksOnInit) : e.slideTo(e.params.initialSlide, 0, e.params.runCallbacksOnInit),
                e.attachEvents(),
                e.initialized = !0,
                e.emit("init"))
            }
            destroy(e=!0, t=!0) {
                const s = this
                  , {params: a, $el: i, $wrapperEl: n, slides: r} = s;
                return "undefined" === typeof s.params || s.destroyed || (s.emit("beforeDestroy"),
                s.initialized = !1,
                s.detachEvents(),
                a.loop && s.loopDestroy(),
                t && (s.removeClasses(),
                i.removeAttr("style"),
                n.removeAttr("style"),
                r && r.length && r.removeClass([a.slideVisibleClass, a.slideActiveClass, a.slideNextClass, a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),
                s.emit("destroy"),
                Object.keys(s.eventsListeners).forEach(e=>{
                    s.off(e)
                }
                ),
                !1 !== e && (s.$el[0].swiper = null,
                s.$el.data("swiper", null),
                J.deleteProps(s)),
                s.destroyed = !0),
                null
            }
            static extendDefaults(e) {
                J.extend(ut, e)
            }
            static get extendedDefaults() {
                return ut
            }
            static get defaults() {
                return ct
            }
            static get Class() {
                return Q
            }
            static get $() {
                return c
            }
        }
        var mt = {
            name: "device",
            proto: {
                device: Ve
            },
            static: {
                device: Ve
            }
        }
          , ft = {
            name: "support",
            proto: {
                support: Z
            },
            static: {
                support: Z
            }
        };
        const gt = function() {
            function e() {
                const e = o.navigator.userAgent.toLowerCase();
                return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0
            }
            return {
                isEdge: !!o.navigator.userAgent.match(/Edge/g),
                isSafari: e(),
                isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(o.navigator.userAgent)
            }
        }();
        var vt = {
            name: "browser",
            proto: {
                browser: gt
            },
            static: {
                browser: gt
            }
        }
          , bt = {
            name: "resize",
            create() {
                const e = this;
                J.extend(e, {
                    resize: {
                        resizeHandler() {
                            e && !e.destroyed && e.initialized && (e.emit("beforeResize"),
                            e.emit("resize"))
                        },
                        orientationChangeHandler() {
                            e && !e.destroyed && e.initialized && e.emit("orientationchange")
                        }
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    o.addEventListener("resize", e.resize.resizeHandler),
                    o.addEventListener("orientationchange", e.resize.orientationChangeHandler)
                },
                destroy() {
                    const e = this;
                    o.removeEventListener("resize", e.resize.resizeHandler),
                    o.removeEventListener("orientationchange", e.resize.orientationChangeHandler)
                }
            }
        };
        const yt = {
            func: o.MutationObserver || o.WebkitMutationObserver,
            attach(e, t={}) {
                const s = this
                  , a = yt.func
                  , i = new a(e=>{
                    if (1 === e.length)
                        return void s.emit("observerUpdate", e[0]);
                    const t = function() {
                        s.emit("observerUpdate", e[0])
                    };
                    o.requestAnimationFrame ? o.requestAnimationFrame(t) : o.setTimeout(t, 0)
                }
                );
                i.observe(e, {
                    attributes: "undefined" === typeof t.attributes || t.attributes,
                    childList: "undefined" === typeof t.childList || t.childList,
                    characterData: "undefined" === typeof t.characterData || t.characterData
                }),
                s.observer.observers.push(i)
            },
            init() {
                const e = this;
                if (Z.observer && e.params.observer) {
                    if (e.params.observeParents) {
                        const t = e.$el.parents();
                        for (let s = 0; s < t.length; s += 1)
                            e.observer.attach(t[s])
                    }
                    e.observer.attach(e.$el[0], {
                        childList: e.params.observeSlideChildren
                    }),
                    e.observer.attach(e.$wrapperEl[0], {
                        attributes: !1
                    })
                }
            },
            destroy() {
                const e = this;
                e.observer.observers.forEach(e=>{
                    e.disconnect()
                }
                ),
                e.observer.observers = []
            }
        };
        var wt = {
            name: "observer",
            params: {
                observer: !1,
                observeParents: !1,
                observeSlideChildren: !1
            },
            create() {
                const e = this;
                J.extend(e, {
                    observer: {
                        init: yt.init.bind(e),
                        attach: yt.attach.bind(e),
                        destroy: yt.destroy.bind(e),
                        observers: []
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.observer.init()
                },
                destroy() {
                    const e = this;
                    e.observer.destroy()
                }
            }
        };
        const xt = {
            update(e) {
                const t = this
                  , {slidesPerView: s, slidesPerGroup: a, centeredSlides: i} = t.params
                  , {addSlidesBefore: n, addSlidesAfter: r} = t.params.virtual
                  , {from: o, to: l, slides: d, slidesGrid: c, renderSlide: p, offset: u} = t.virtual;
                t.updateActiveIndex();
                const h = t.activeIndex || 0;
                let m, f, g;
                m = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top",
                i ? (f = Math.floor(s / 2) + a + n,
                g = Math.floor(s / 2) + a + r) : (f = s + (a - 1) + n,
                g = a + r);
                const v = Math.max((h || 0) - g, 0)
                  , b = Math.min((h || 0) + f, d.length - 1)
                  , y = (t.slidesGrid[v] || 0) - (t.slidesGrid[0] || 0);
                function w() {
                    t.updateSlides(),
                    t.updateProgress(),
                    t.updateSlidesClasses(),
                    t.lazy && t.params.lazy.enabled && t.lazy.load()
                }
                if (J.extend(t.virtual, {
                    from: v,
                    to: b,
                    offset: y,
                    slidesGrid: t.slidesGrid
                }),
                o === v && l === b && !e)
                    return t.slidesGrid !== c && y !== u && t.slides.css(m, y + "px"),
                    void t.updateProgress();
                if (t.params.virtual.renderExternal)
                    return t.params.virtual.renderExternal.call(t, {
                        offset: y,
                        from: v,
                        to: b,
                        slides: function() {
                            const e = [];
                            for (let t = v; t <= b; t += 1)
                                e.push(d[t]);
                            return e
                        }()
                    }),
                    void w();
                const x = []
                  , E = [];
                if (e)
                    t.$wrapperEl.find("." + t.params.slideClass).remove();
                else
                    for (let T = o; T <= l; T += 1)
                        (T < v || T > b) && t.$wrapperEl.find(`.${t.params.slideClass}[data-swiper-slide-index="${T}"]`).remove();
                for (let T = 0; T < d.length; T += 1)
                    T >= v && T <= b && ("undefined" === typeof l || e ? E.push(T) : (T > l && E.push(T),
                    T < o && x.push(T)));
                E.forEach(e=>{
                    t.$wrapperEl.append(p(d[e], e))
                }
                ),
                x.sort((e,t)=>t - e).forEach(e=>{
                    t.$wrapperEl.prepend(p(d[e], e))
                }
                ),
                t.$wrapperEl.children(".swiper-slide").css(m, y + "px"),
                w()
            },
            renderSlide(e, t) {
                const s = this
                  , a = s.params.virtual;
                if (a.cache && s.virtual.cache[t])
                    return s.virtual.cache[t];
                const i = a.renderSlide ? c(a.renderSlide.call(s, e, t)) : c(`<div class="${s.params.slideClass}" data-swiper-slide-index="${t}">${e}</div>`);
                return i.attr("data-swiper-slide-index") || i.attr("data-swiper-slide-index", t),
                a.cache && (s.virtual.cache[t] = i),
                i
            },
            appendSlide(e) {
                const t = this;
                if ("object" === typeof e && "length"in e)
                    for (let s = 0; s < e.length; s += 1)
                        e[s] && t.virtual.slides.push(e[s]);
                else
                    t.virtual.slides.push(e);
                t.virtual.update(!0)
            },
            prependSlide(e) {
                const t = this
                  , s = t.activeIndex;
                let a = s + 1
                  , i = 1;
                if (Array.isArray(e)) {
                    for (let s = 0; s < e.length; s += 1)
                        e[s] && t.virtual.slides.unshift(e[s]);
                    a = s + e.length,
                    i = e.length
                } else
                    t.virtual.slides.unshift(e);
                if (t.params.virtual.cache) {
                    const e = t.virtual.cache
                      , s = {};
                    Object.keys(e).forEach(t=>{
                        const a = e[t]
                          , n = a.attr("data-swiper-slide-index");
                        n && a.attr("data-swiper-slide-index", parseInt(n, 10) + 1),
                        s[parseInt(t, 10) + i] = a
                    }
                    ),
                    t.virtual.cache = s
                }
                t.virtual.update(!0),
                t.slideTo(a, 0)
            },
            removeSlide(e) {
                const t = this;
                if ("undefined" === typeof e || null === e)
                    return;
                let s = t.activeIndex;
                if (Array.isArray(e))
                    for (let a = e.length - 1; a >= 0; a -= 1)
                        t.virtual.slides.splice(e[a], 1),
                        t.params.virtual.cache && delete t.virtual.cache[e[a]],
                        e[a] < s && (s -= 1),
                        s = Math.max(s, 0);
                else
                    t.virtual.slides.splice(e, 1),
                    t.params.virtual.cache && delete t.virtual.cache[e],
                    e < s && (s -= 1),
                    s = Math.max(s, 0);
                t.virtual.update(!0),
                t.slideTo(s, 0)
            },
            removeAllSlides() {
                const e = this;
                e.virtual.slides = [],
                e.params.virtual.cache && (e.virtual.cache = {}),
                e.virtual.update(!0),
                e.slideTo(0, 0)
            }
        };
        var Et = {
            name: "virtual",
            params: {
                virtual: {
                    enabled: !1,
                    slides: [],
                    cache: !0,
                    renderSlide: null,
                    renderExternal: null,
                    addSlidesBefore: 0,
                    addSlidesAfter: 0
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    virtual: {
                        update: xt.update.bind(e),
                        appendSlide: xt.appendSlide.bind(e),
                        prependSlide: xt.prependSlide.bind(e),
                        removeSlide: xt.removeSlide.bind(e),
                        removeAllSlides: xt.removeAllSlides.bind(e),
                        renderSlide: xt.renderSlide.bind(e),
                        slides: e.params.virtual.slides,
                        cache: {}
                    }
                })
            },
            on: {
                beforeInit() {
                    const e = this;
                    if (!e.params.virtual.enabled)
                        return;
                    e.classNames.push(e.params.containerModifierClass + "virtual");
                    const t = {
                        watchSlidesProgress: !0
                    };
                    J.extend(e.params, t),
                    J.extend(e.originalParams, t),
                    e.params.initialSlide || e.virtual.update()
                },
                setTranslate() {
                    const e = this;
                    e.params.virtual.enabled && e.virtual.update()
                }
            }
        };
        const Tt = {
            handle(e) {
                const t = this
                  , {rtlTranslate: s} = t;
                let a = e;
                a.originalEvent && (a = a.originalEvent);
                const i = a.keyCode || a.charCode
                  , r = t.params.keyboard.pageUpDown
                  , l = r && 33 === i
                  , d = r && 34 === i
                  , c = 37 === i
                  , p = 39 === i
                  , u = 38 === i
                  , h = 40 === i;
                if (!t.allowSlideNext && (t.isHorizontal() && p || t.isVertical() && h || d))
                    return !1;
                if (!t.allowSlidePrev && (t.isHorizontal() && c || t.isVertical() && u || l))
                    return !1;
                if (!(a.shiftKey || a.altKey || a.ctrlKey || a.metaKey) && (!n.activeElement || !n.activeElement.nodeName || "input" !== n.activeElement.nodeName.toLowerCase() && "textarea" !== n.activeElement.nodeName.toLowerCase())) {
                    if (t.params.keyboard.onlyInViewport && (l || d || c || p || u || h)) {
                        let e = !1;
                        if (t.$el.parents("." + t.params.slideClass).length > 0 && 0 === t.$el.parents("." + t.params.slideActiveClass).length)
                            return;
                        const a = o.innerWidth
                          , i = o.innerHeight
                          , n = t.$el.offset();
                        s && (n.left -= t.$el[0].scrollLeft);
                        const r = [[n.left, n.top], [n.left + t.width, n.top], [n.left, n.top + t.height], [n.left + t.width, n.top + t.height]];
                        for (let t = 0; t < r.length; t += 1) {
                            const s = r[t];
                            s[0] >= 0 && s[0] <= a && s[1] >= 0 && s[1] <= i && (e = !0)
                        }
                        if (!e)
                            return
                    }
                    t.isHorizontal() ? ((l || d || c || p) && (a.preventDefault ? a.preventDefault() : a.returnValue = !1),
                    ((d || p) && !s || (l || c) && s) && t.slideNext(),
                    ((l || c) && !s || (d || p) && s) && t.slidePrev()) : ((l || d || u || h) && (a.preventDefault ? a.preventDefault() : a.returnValue = !1),
                    (d || h) && t.slideNext(),
                    (l || u) && t.slidePrev()),
                    t.emit("keyPress", i)
                }
            },
            enable() {
                const e = this;
                e.keyboard.enabled || (c(n).on("keydown", e.keyboard.handle),
                e.keyboard.enabled = !0)
            },
            disable() {
                const e = this;
                e.keyboard.enabled && (c(n).off("keydown", e.keyboard.handle),
                e.keyboard.enabled = !1)
            }
        };
        var St = {
            name: "keyboard",
            params: {
                keyboard: {
                    enabled: !1,
                    onlyInViewport: !0,
                    pageUpDown: !0
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    keyboard: {
                        enabled: !1,
                        enable: Tt.enable.bind(e),
                        disable: Tt.disable.bind(e),
                        handle: Tt.handle.bind(e)
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.params.keyboard.enabled && e.keyboard.enable()
                },
                destroy() {
                    const e = this;
                    e.keyboard.enabled && e.keyboard.disable()
                }
            }
        };
        function Ct() {
            const e = "onwheel";
            let t = e in n;
            if (!t) {
                const s = n.createElement("div");
                s.setAttribute(e, "return;"),
                t = "function" === typeof s[e]
            }
            return !t && n.implementation && n.implementation.hasFeature && !0 !== n.implementation.hasFeature("", "") && (t = n.implementation.hasFeature("Events.wheel", "3.0")),
            t
        }
        const $t = {
            lastScrollTime: J.now(),
            lastEventBeforeSnap: void 0,
            recentWheelEvents: [],
            event() {
                return o.navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : Ct() ? "wheel" : "mousewheel"
            },
            normalize(e) {
                const t = 10
                  , s = 40
                  , a = 800;
                let i = 0
                  , n = 0
                  , r = 0
                  , o = 0;
                return "detail"in e && (n = e.detail),
                "wheelDelta"in e && (n = -e.wheelDelta / 120),
                "wheelDeltaY"in e && (n = -e.wheelDeltaY / 120),
                "wheelDeltaX"in e && (i = -e.wheelDeltaX / 120),
                "axis"in e && e.axis === e.HORIZONTAL_AXIS && (i = n,
                n = 0),
                r = i * t,
                o = n * t,
                "deltaY"in e && (o = e.deltaY),
                "deltaX"in e && (r = e.deltaX),
                e.shiftKey && !r && (r = o,
                o = 0),
                (r || o) && e.deltaMode && (1 === e.deltaMode ? (r *= s,
                o *= s) : (r *= a,
                o *= a)),
                r && !i && (i = r < 1 ? -1 : 1),
                o && !n && (n = o < 1 ? -1 : 1),
                {
                    spinX: i,
                    spinY: n,
                    pixelX: r,
                    pixelY: o
                }
            },
            handleMouseEnter() {
                const e = this;
                e.mouseEntered = !0
            },
            handleMouseLeave() {
                const e = this;
                e.mouseEntered = !1
            },
            handle(e) {
                let t = e;
                const s = this
                  , a = s.params.mousewheel;
                s.params.cssMode && t.preventDefault();
                let i = s.$el;
                if ("container" !== s.params.mousewheel.eventsTarged && (i = c(s.params.mousewheel.eventsTarged)),
                !s.mouseEntered && !i[0].contains(t.target) && !a.releaseOnEdges)
                    return !0;
                t.originalEvent && (t = t.originalEvent);
                let n = 0;
                const r = s.rtlTranslate ? -1 : 1
                  , o = $t.normalize(t);
                if (a.forceToAxis)
                    if (s.isHorizontal()) {
                        if (!(Math.abs(o.pixelX) > Math.abs(o.pixelY)))
                            return !0;
                        n = -o.pixelX * r
                    } else {
                        if (!(Math.abs(o.pixelY) > Math.abs(o.pixelX)))
                            return !0;
                        n = -o.pixelY
                    }
                else
                    n = Math.abs(o.pixelX) > Math.abs(o.pixelY) ? -o.pixelX * r : -o.pixelY;
                if (0 === n)
                    return !0;
                if (a.invert && (n = -n),
                s.params.freeMode) {
                    const e = {
                        time: J.now(),
                        delta: Math.abs(n),
                        direction: Math.sign(n)
                    }
                      , {lastEventBeforeSnap: i} = s.mousewheel
                      , r = i && e.time < i.time + 500 && e.delta <= i.delta && e.direction === i.direction;
                    if (!r) {
                        s.mousewheel.lastEventBeforeSnap = void 0,
                        s.params.loop && s.loopFix();
                        let i = s.getTranslate() + n * a.sensitivity;
                        const o = s.isBeginning
                          , l = s.isEnd;
                        if (i >= s.minTranslate() && (i = s.minTranslate()),
                        i <= s.maxTranslate() && (i = s.maxTranslate()),
                        s.setTransition(0),
                        s.setTranslate(i),
                        s.updateProgress(),
                        s.updateActiveIndex(),
                        s.updateSlidesClasses(),
                        (!o && s.isBeginning || !l && s.isEnd) && s.updateSlidesClasses(),
                        s.params.freeModeSticky) {
                            clearTimeout(s.mousewheel.timeout),
                            s.mousewheel.timeout = void 0;
                            const t = s.mousewheel.recentWheelEvents;
                            t.length >= 15 && t.shift();
                            const a = t.length ? t[t.length - 1] : void 0
                              , i = t[0];
                            if (t.push(e),
                            a && (e.delta > a.delta || e.direction !== a.direction))
                                t.splice(0);
                            else if (t.length >= 15 && e.time - i.time < 500 && i.delta - e.delta >= 1 && e.delta <= 6) {
                                const a = n > 0 ? .8 : .2;
                                s.mousewheel.lastEventBeforeSnap = e,
                                t.splice(0),
                                s.mousewheel.timeout = J.nextTick(()=>{
                                    s.slideToClosest(s.params.speed, !0, void 0, a)
                                }
                                , 0)
                            }
                            s.mousewheel.timeout || (s.mousewheel.timeout = J.nextTick(()=>{
                                const a = .5;
                                s.mousewheel.lastEventBeforeSnap = e,
                                t.splice(0),
                                s.slideToClosest(s.params.speed, !0, void 0, a)
                            }
                            , 500))
                        }
                        if (r || s.emit("scroll", t),
                        s.params.autoplay && s.params.autoplayDisableOnInteraction && s.autoplay.stop(),
                        i === s.minTranslate() || i === s.maxTranslate())
                            return !0
                    }
                } else {
                    const t = {
                        time: J.now(),
                        delta: Math.abs(n),
                        direction: Math.sign(n),
                        raw: e
                    }
                      , a = s.mousewheel.recentWheelEvents;
                    a.length >= 2 && a.shift();
                    const i = a.length ? a[a.length - 1] : void 0;
                    if (a.push(t),
                    i ? (t.direction !== i.direction || t.delta > i.delta || t.time > i.time + 150) && s.mousewheel.animateSlider(t) : s.mousewheel.animateSlider(t),
                    s.mousewheel.releaseScroll(t))
                        return !0
                }
                return t.preventDefault ? t.preventDefault() : t.returnValue = !1,
                !1
            },
            animateSlider(e) {
                const t = this;
                return e.delta >= 6 && J.now() - t.mousewheel.lastScrollTime < 60 || (e.direction < 0 ? t.isEnd && !t.params.loop || t.animating || (t.slideNext(),
                t.emit("scroll", e.raw)) : t.isBeginning && !t.params.loop || t.animating || (t.slidePrev(),
                t.emit("scroll", e.raw)),
                t.mousewheel.lastScrollTime = (new o.Date).getTime(),
                !1)
            },
            releaseScroll(e) {
                const t = this
                  , s = t.params.mousewheel;
                if (e.direction < 0) {
                    if (t.isEnd && !t.params.loop && s.releaseOnEdges)
                        return !0
                } else if (t.isBeginning && !t.params.loop && s.releaseOnEdges)
                    return !0;
                return !1
            },
            enable() {
                const e = this
                  , t = $t.event();
                if (e.params.cssMode)
                    return e.wrapperEl.removeEventListener(t, e.mousewheel.handle),
                    !0;
                if (!t)
                    return !1;
                if (e.mousewheel.enabled)
                    return !1;
                let s = e.$el;
                return "container" !== e.params.mousewheel.eventsTarged && (s = c(e.params.mousewheel.eventsTarged)),
                s.on("mouseenter", e.mousewheel.handleMouseEnter),
                s.on("mouseleave", e.mousewheel.handleMouseLeave),
                s.on(t, e.mousewheel.handle),
                e.mousewheel.enabled = !0,
                !0
            },
            disable() {
                const e = this
                  , t = $t.event();
                if (e.params.cssMode)
                    return e.wrapperEl.addEventListener(t, e.mousewheel.handle),
                    !0;
                if (!t)
                    return !1;
                if (!e.mousewheel.enabled)
                    return !1;
                let s = e.$el;
                return "container" !== e.params.mousewheel.eventsTarged && (s = c(e.params.mousewheel.eventsTarged)),
                s.off(t, e.mousewheel.handle),
                e.mousewheel.enabled = !1,
                !0
            }
        };
        var Mt = {
            name: "mousewheel",
            params: {
                mousewheel: {
                    enabled: !1,
                    releaseOnEdges: !1,
                    invert: !1,
                    forceToAxis: !1,
                    sensitivity: 1,
                    eventsTarged: "container"
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    mousewheel: {
                        enabled: !1,
                        enable: $t.enable.bind(e),
                        disable: $t.disable.bind(e),
                        handle: $t.handle.bind(e),
                        handleMouseEnter: $t.handleMouseEnter.bind(e),
                        handleMouseLeave: $t.handleMouseLeave.bind(e),
                        animateSlider: $t.animateSlider.bind(e),
                        releaseScroll: $t.releaseScroll.bind(e),
                        lastScrollTime: J.now(),
                        lastEventBeforeSnap: void 0,
                        recentWheelEvents: []
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    !e.params.mousewheel.enabled && e.params.cssMode && e.mousewheel.disable(),
                    e.params.mousewheel.enabled && e.mousewheel.enable()
                },
                destroy() {
                    const e = this;
                    e.params.cssMode && e.mousewheel.enable(),
                    e.mousewheel.enabled && e.mousewheel.disable()
                }
            }
        };
        const Pt = {
            update() {
                const e = this
                  , t = e.params.navigation;
                if (e.params.loop)
                    return;
                const {$nextEl: s, $prevEl: a} = e.navigation;
                a && a.length > 0 && (e.isBeginning ? a.addClass(t.disabledClass) : a.removeClass(t.disabledClass),
                a[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass)),
                s && s.length > 0 && (e.isEnd ? s.addClass(t.disabledClass) : s.removeClass(t.disabledClass),
                s[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass))
            },
            onPrevClick(e) {
                const t = this;
                e.preventDefault(),
                t.isBeginning && !t.params.loop || t.slidePrev()
            },
            onNextClick(e) {
                const t = this;
                e.preventDefault(),
                t.isEnd && !t.params.loop || t.slideNext()
            },
            init() {
                const e = this
                  , t = e.params.navigation;
                if (!t.nextEl && !t.prevEl)
                    return;
                let s, a;
                t.nextEl && (s = c(t.nextEl),
                e.params.uniqueNavElements && "string" === typeof t.nextEl && s.length > 1 && 1 === e.$el.find(t.nextEl).length && (s = e.$el.find(t.nextEl))),
                t.prevEl && (a = c(t.prevEl),
                e.params.uniqueNavElements && "string" === typeof t.prevEl && a.length > 1 && 1 === e.$el.find(t.prevEl).length && (a = e.$el.find(t.prevEl))),
                s && s.length > 0 && s.on("click", e.navigation.onNextClick),
                a && a.length > 0 && a.on("click", e.navigation.onPrevClick),
                J.extend(e.navigation, {
                    $nextEl: s,
                    nextEl: s && s[0],
                    $prevEl: a,
                    prevEl: a && a[0]
                })
            },
            destroy() {
                const e = this
                  , {$nextEl: t, $prevEl: s} = e.navigation;
                t && t.length && (t.off("click", e.navigation.onNextClick),
                t.removeClass(e.params.navigation.disabledClass)),
                s && s.length && (s.off("click", e.navigation.onPrevClick),
                s.removeClass(e.params.navigation.disabledClass))
            }
        };
        var kt = {
            name: "navigation",
            params: {
                navigation: {
                    nextEl: null,
                    prevEl: null,
                    hideOnClick: !1,
                    disabledClass: "swiper-button-disabled",
                    hiddenClass: "swiper-button-hidden",
                    lockClass: "swiper-button-lock"
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    navigation: {
                        init: Pt.init.bind(e),
                        update: Pt.update.bind(e),
                        destroy: Pt.destroy.bind(e),
                        onNextClick: Pt.onNextClick.bind(e),
                        onPrevClick: Pt.onPrevClick.bind(e)
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.navigation.init(),
                    e.navigation.update()
                },
                toEdge() {
                    const e = this;
                    e.navigation.update()
                },
                fromEdge() {
                    const e = this;
                    e.navigation.update()
                },
                destroy() {
                    const e = this;
                    e.navigation.destroy()
                },
                click(e) {
                    const t = this
                      , {$nextEl: s, $prevEl: a} = t.navigation;
                    if (t.params.navigation.hideOnClick && !c(e.target).is(a) && !c(e.target).is(s)) {
                        let e;
                        s ? e = s.hasClass(t.params.navigation.hiddenClass) : a && (e = a.hasClass(t.params.navigation.hiddenClass)),
                        !0 === e ? t.emit("navigationShow", t) : t.emit("navigationHide", t),
                        s && s.toggleClass(t.params.navigation.hiddenClass),
                        a && a.toggleClass(t.params.navigation.hiddenClass)
                    }
                }
            }
        };
        const zt = {
            update() {
                const e = this
                  , t = e.rtl
                  , s = e.params.pagination;
                if (!s.el || !e.pagination.el || !e.pagination.$el || 0 === e.pagination.$el.length)
                    return;
                const a = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length
                  , i = e.pagination.$el;
                let n;
                const r = e.params.loop ? Math.ceil((a - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
                if (e.params.loop ? (n = Math.ceil((e.activeIndex - e.loopedSlides) / e.params.slidesPerGroup),
                n > a - 1 - 2 * e.loopedSlides && (n -= a - 2 * e.loopedSlides),
                n > r - 1 && (n -= r),
                n < 0 && "bullets" !== e.params.paginationType && (n = r + n)) : n = "undefined" !== typeof e.snapIndex ? e.snapIndex : e.activeIndex || 0,
                "bullets" === s.type && e.pagination.bullets && e.pagination.bullets.length > 0) {
                    const a = e.pagination.bullets;
                    let r, o, l;
                    if (s.dynamicBullets && (e.pagination.bulletSize = a.eq(0)[e.isHorizontal() ? "outerWidth" : "outerHeight"](!0),
                    i.css(e.isHorizontal() ? "width" : "height", e.pagination.bulletSize * (s.dynamicMainBullets + 4) + "px"),
                    s.dynamicMainBullets > 1 && void 0 !== e.previousIndex && (e.pagination.dynamicBulletIndex += n - e.previousIndex,
                    e.pagination.dynamicBulletIndex > s.dynamicMainBullets - 1 ? e.pagination.dynamicBulletIndex = s.dynamicMainBullets - 1 : e.pagination.dynamicBulletIndex < 0 && (e.pagination.dynamicBulletIndex = 0)),
                    r = n - e.pagination.dynamicBulletIndex,
                    o = r + (Math.min(a.length, s.dynamicMainBullets) - 1),
                    l = (o + r) / 2),
                    a.removeClass(`${s.bulletActiveClass} ${s.bulletActiveClass}-next ${s.bulletActiveClass}-next-next ${s.bulletActiveClass}-prev ${s.bulletActiveClass}-prev-prev ${s.bulletActiveClass}-main`),
                    i.length > 1)
                        a.each((e,t)=>{
                            const a = c(t)
                              , i = a.index();
                            i === n && a.addClass(s.bulletActiveClass),
                            s.dynamicBullets && (i >= r && i <= o && a.addClass(s.bulletActiveClass + "-main"),
                            i === r && a.prev().addClass(s.bulletActiveClass + "-prev").prev().addClass(s.bulletActiveClass + "-prev-prev"),
                            i === o && a.next().addClass(s.bulletActiveClass + "-next").next().addClass(s.bulletActiveClass + "-next-next"))
                        }
                        );
                    else {
                        const t = a.eq(n)
                          , i = t.index();
                        if (t.addClass(s.bulletActiveClass),
                        s.dynamicBullets) {
                            const t = a.eq(r)
                              , n = a.eq(o);
                            for (let e = r; e <= o; e += 1)
                                a.eq(e).addClass(s.bulletActiveClass + "-main");
                            if (e.params.loop)
                                if (i >= a.length - s.dynamicMainBullets) {
                                    for (let e = s.dynamicMainBullets; e >= 0; e -= 1)
                                        a.eq(a.length - e).addClass(s.bulletActiveClass + "-main");
                                    a.eq(a.length - s.dynamicMainBullets - 1).addClass(s.bulletActiveClass + "-prev")
                                } else
                                    t.prev().addClass(s.bulletActiveClass + "-prev").prev().addClass(s.bulletActiveClass + "-prev-prev"),
                                    n.next().addClass(s.bulletActiveClass + "-next").next().addClass(s.bulletActiveClass + "-next-next");
                            else
                                t.prev().addClass(s.bulletActiveClass + "-prev").prev().addClass(s.bulletActiveClass + "-prev-prev"),
                                n.next().addClass(s.bulletActiveClass + "-next").next().addClass(s.bulletActiveClass + "-next-next")
                        }
                    }
                    if (s.dynamicBullets) {
                        const i = Math.min(a.length, s.dynamicMainBullets + 4)
                          , n = (e.pagination.bulletSize * i - e.pagination.bulletSize) / 2 - l * e.pagination.bulletSize
                          , r = t ? "right" : "left";
                        a.css(e.isHorizontal() ? r : "top", n + "px")
                    }
                }
                if ("fraction" === s.type && (i.find("." + s.currentClass).text(s.formatFractionCurrent(n + 1)),
                i.find("." + s.totalClass).text(s.formatFractionTotal(r))),
                "progressbar" === s.type) {
                    let t;
                    t = s.progressbarOpposite ? e.isHorizontal() ? "vertical" : "horizontal" : e.isHorizontal() ? "horizontal" : "vertical";
                    const a = (n + 1) / r;
                    let o = 1
                      , l = 1;
                    "horizontal" === t ? o = a : l = a,
                    i.find("." + s.progressbarFillClass).transform(`translate3d(0,0,0) scaleX(${o}) scaleY(${l})`).transition(e.params.speed)
                }
                "custom" === s.type && s.renderCustom ? (i.html(s.renderCustom(e, n + 1, r)),
                e.emit("paginationRender", e, i[0])) : e.emit("paginationUpdate", e, i[0]),
                i[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](s.lockClass)
            },
            render() {
                const e = this
                  , t = e.params.pagination;
                if (!t.el || !e.pagination.el || !e.pagination.$el || 0 === e.pagination.$el.length)
                    return;
                const s = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length
                  , a = e.pagination.$el;
                let i = "";
                if ("bullets" === t.type) {
                    const n = e.params.loop ? Math.ceil((s - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
                    for (let s = 0; s < n; s += 1)
                        t.renderBullet ? i += t.renderBullet.call(e, s, t.bulletClass) : i += `<${t.bulletElement} class="${t.bulletClass}"></${t.bulletElement}>`;
                    a.html(i),
                    e.pagination.bullets = a.find("." + t.bulletClass)
                }
                "fraction" === t.type && (i = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : `<span class="${t.currentClass}"></span> / <span class="${t.totalClass}"></span>`,
                a.html(i)),
                "progressbar" === t.type && (i = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : `<span class="${t.progressbarFillClass}"></span>`,
                a.html(i)),
                "custom" !== t.type && e.emit("paginationRender", e.pagination.$el[0])
            },
            init() {
                const e = this
                  , t = e.params.pagination;
                if (!t.el)
                    return;
                let s = c(t.el);
                0 !== s.length && (e.params.uniqueNavElements && "string" === typeof t.el && s.length > 1 && (s = e.$el.find(t.el)),
                "bullets" === t.type && t.clickable && s.addClass(t.clickableClass),
                s.addClass(t.modifierClass + t.type),
                "bullets" === t.type && t.dynamicBullets && (s.addClass(`${t.modifierClass}${t.type}-dynamic`),
                e.pagination.dynamicBulletIndex = 0,
                t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)),
                "progressbar" === t.type && t.progressbarOpposite && s.addClass(t.progressbarOppositeClass),
                t.clickable && s.on("click", "." + t.bulletClass, (function(t) {
                    t.preventDefault();
                    let s = c(this).index() * e.params.slidesPerGroup;
                    e.params.loop && (s += e.loopedSlides),
                    e.slideTo(s)
                }
                )),
                J.extend(e.pagination, {
                    $el: s,
                    el: s[0]
                }))
            },
            destroy() {
                const e = this
                  , t = e.params.pagination;
                if (!t.el || !e.pagination.el || !e.pagination.$el || 0 === e.pagination.$el.length)
                    return;
                const s = e.pagination.$el;
                s.removeClass(t.hiddenClass),
                s.removeClass(t.modifierClass + t.type),
                e.pagination.bullets && e.pagination.bullets.removeClass(t.bulletActiveClass),
                t.clickable && s.off("click", "." + t.bulletClass)
            }
        };
        var Lt = {
            name: "pagination",
            params: {
                pagination: {
                    el: null,
                    bulletElement: "span",
                    clickable: !1,
                    hideOnClick: !1,
                    renderBullet: null,
                    renderProgressbar: null,
                    renderFraction: null,
                    renderCustom: null,
                    progressbarOpposite: !1,
                    type: "bullets",
                    dynamicBullets: !1,
                    dynamicMainBullets: 1,
                    formatFractionCurrent: e=>e,
                    formatFractionTotal: e=>e,
                    bulletClass: "swiper-pagination-bullet",
                    bulletActiveClass: "swiper-pagination-bullet-active",
                    modifierClass: "swiper-pagination-",
                    currentClass: "swiper-pagination-current",
                    totalClass: "swiper-pagination-total",
                    hiddenClass: "swiper-pagination-hidden",
                    progressbarFillClass: "swiper-pagination-progressbar-fill",
                    progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
                    clickableClass: "swiper-pagination-clickable",
                    lockClass: "swiper-pagination-lock"
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    pagination: {
                        init: zt.init.bind(e),
                        render: zt.render.bind(e),
                        update: zt.update.bind(e),
                        destroy: zt.destroy.bind(e),
                        dynamicBulletIndex: 0
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.pagination.init(),
                    e.pagination.render(),
                    e.pagination.update()
                },
                activeIndexChange() {
                    const e = this;
                    (e.params.loop || "undefined" === typeof e.snapIndex) && e.pagination.update()
                },
                snapIndexChange() {
                    const e = this;
                    e.params.loop || e.pagination.update()
                },
                slidesLengthChange() {
                    const e = this;
                    e.params.loop && (e.pagination.render(),
                    e.pagination.update())
                },
                snapGridLengthChange() {
                    const e = this;
                    e.params.loop || (e.pagination.render(),
                    e.pagination.update())
                },
                destroy() {
                    const e = this;
                    e.pagination.destroy()
                },
                click(e) {
                    const t = this;
                    if (t.params.pagination.el && t.params.pagination.hideOnClick && t.pagination.$el.length > 0 && !c(e.target).hasClass(t.params.pagination.bulletClass)) {
                        const e = t.pagination.$el.hasClass(t.params.pagination.hiddenClass);
                        !0 === e ? t.emit("paginationShow", t) : t.emit("paginationHide", t),
                        t.pagination.$el.toggleClass(t.params.pagination.hiddenClass)
                    }
                }
            }
        };
        const It = {
            setTranslate() {
                const e = this;
                if (!e.params.scrollbar.el || !e.scrollbar.el)
                    return;
                const {scrollbar: t, rtlTranslate: s, progress: a} = e
                  , {dragSize: i, trackSize: n, $dragEl: r, $el: o} = t
                  , l = e.params.scrollbar;
                let d = i
                  , c = (n - i) * a;
                s ? (c = -c,
                c > 0 ? (d = i - c,
                c = 0) : -c + i > n && (d = n + c)) : c < 0 ? (d = i + c,
                c = 0) : c + i > n && (d = n - c),
                e.isHorizontal() ? (r.transform(`translate3d(${c}px, 0, 0)`),
                r[0].style.width = d + "px") : (r.transform(`translate3d(0px, ${c}px, 0)`),
                r[0].style.height = d + "px"),
                l.hide && (clearTimeout(e.scrollbar.timeout),
                o[0].style.opacity = 1,
                e.scrollbar.timeout = setTimeout(()=>{
                    o[0].style.opacity = 0,
                    o.transition(400)
                }
                , 1e3))
            },
            setTransition(e) {
                const t = this;
                t.params.scrollbar.el && t.scrollbar.el && t.scrollbar.$dragEl.transition(e)
            },
            updateSize() {
                const e = this;
                if (!e.params.scrollbar.el || !e.scrollbar.el)
                    return;
                const {scrollbar: t} = e
                  , {$dragEl: s, $el: a} = t;
                s[0].style.width = "",
                s[0].style.height = "";
                const i = e.isHorizontal() ? a[0].offsetWidth : a[0].offsetHeight
                  , n = e.size / e.virtualSize
                  , r = n * (i / e.size);
                let o;
                o = "auto" === e.params.scrollbar.dragSize ? i * n : parseInt(e.params.scrollbar.dragSize, 10),
                e.isHorizontal() ? s[0].style.width = o + "px" : s[0].style.height = o + "px",
                a[0].style.display = n >= 1 ? "none" : "",
                e.params.scrollbar.hide && (a[0].style.opacity = 0),
                J.extend(t, {
                    trackSize: i,
                    divider: n,
                    moveDivider: r,
                    dragSize: o
                }),
                t.$el[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](e.params.scrollbar.lockClass)
            },
            getPointerPosition(e) {
                const t = this;
                return t.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientX : e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientY : e.clientY
            },
            setDragPosition(e) {
                const t = this
                  , {scrollbar: s, rtlTranslate: a} = t
                  , {$el: i, dragSize: n, trackSize: r, dragStartPos: o} = s;
                let l;
                l = (s.getPointerPosition(e) - i.offset()[t.isHorizontal() ? "left" : "top"] - (null !== o ? o : n / 2)) / (r - n),
                l = Math.max(Math.min(l, 1), 0),
                a && (l = 1 - l);
                const d = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * l;
                t.updateProgress(d),
                t.setTranslate(d),
                t.updateActiveIndex(),
                t.updateSlidesClasses()
            },
            onDragStart(e) {
                const t = this
                  , s = t.params.scrollbar
                  , {scrollbar: a, $wrapperEl: i} = t
                  , {$el: n, $dragEl: r} = a;
                t.scrollbar.isTouched = !0,
                t.scrollbar.dragStartPos = e.target === r[0] || e.target === r ? a.getPointerPosition(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? "left" : "top"] : null,
                e.preventDefault(),
                e.stopPropagation(),
                i.transition(100),
                r.transition(100),
                a.setDragPosition(e),
                clearTimeout(t.scrollbar.dragTimeout),
                n.transition(0),
                s.hide && n.css("opacity", 1),
                t.params.cssMode && t.$wrapperEl.css("scroll-snap-type", "none"),
                t.emit("scrollbarDragStart", e)
            },
            onDragMove(e) {
                const t = this
                  , {scrollbar: s, $wrapperEl: a} = t
                  , {$el: i, $dragEl: n} = s;
                t.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1,
                s.setDragPosition(e),
                a.transition(0),
                i.transition(0),
                n.transition(0),
                t.emit("scrollbarDragMove", e))
            },
            onDragEnd(e) {
                const t = this
                  , s = t.params.scrollbar
                  , {scrollbar: a, $wrapperEl: i} = t
                  , {$el: n} = a;
                t.scrollbar.isTouched && (t.scrollbar.isTouched = !1,
                t.params.cssMode && (t.$wrapperEl.css("scroll-snap-type", ""),
                i.transition("")),
                s.hide && (clearTimeout(t.scrollbar.dragTimeout),
                t.scrollbar.dragTimeout = J.nextTick(()=>{
                    n.css("opacity", 0),
                    n.transition(400)
                }
                , 1e3)),
                t.emit("scrollbarDragEnd", e),
                s.snapOnRelease && t.slideToClosest())
            },
            enableDraggable() {
                const e = this;
                if (!e.params.scrollbar.el)
                    return;
                const {scrollbar: t, touchEventsTouch: s, touchEventsDesktop: a, params: i} = e
                  , r = t.$el
                  , o = r[0]
                  , l = !(!Z.passiveListener || !i.passiveListeners) && {
                    passive: !1,
                    capture: !1
                }
                  , d = !(!Z.passiveListener || !i.passiveListeners) && {
                    passive: !0,
                    capture: !1
                };
                Z.touch ? (o.addEventListener(s.start, e.scrollbar.onDragStart, l),
                o.addEventListener(s.move, e.scrollbar.onDragMove, l),
                o.addEventListener(s.end, e.scrollbar.onDragEnd, d)) : (o.addEventListener(a.start, e.scrollbar.onDragStart, l),
                n.addEventListener(a.move, e.scrollbar.onDragMove, l),
                n.addEventListener(a.end, e.scrollbar.onDragEnd, d))
            },
            disableDraggable() {
                const e = this;
                if (!e.params.scrollbar.el)
                    return;
                const {scrollbar: t, touchEventsTouch: s, touchEventsDesktop: a, params: i} = e
                  , r = t.$el
                  , o = r[0]
                  , l = !(!Z.passiveListener || !i.passiveListeners) && {
                    passive: !1,
                    capture: !1
                }
                  , d = !(!Z.passiveListener || !i.passiveListeners) && {
                    passive: !0,
                    capture: !1
                };
                Z.touch ? (o.removeEventListener(s.start, e.scrollbar.onDragStart, l),
                o.removeEventListener(s.move, e.scrollbar.onDragMove, l),
                o.removeEventListener(s.end, e.scrollbar.onDragEnd, d)) : (o.removeEventListener(a.start, e.scrollbar.onDragStart, l),
                n.removeEventListener(a.move, e.scrollbar.onDragMove, l),
                n.removeEventListener(a.end, e.scrollbar.onDragEnd, d))
            },
            init() {
                const e = this;
                if (!e.params.scrollbar.el)
                    return;
                const {scrollbar: t, $el: s} = e
                  , a = e.params.scrollbar;
                let i = c(a.el);
                e.params.uniqueNavElements && "string" === typeof a.el && i.length > 1 && 1 === s.find(a.el).length && (i = s.find(a.el));
                let n = i.find("." + e.params.scrollbar.dragClass);
                0 === n.length && (n = c(`<div class="${e.params.scrollbar.dragClass}"></div>`),
                i.append(n)),
                J.extend(t, {
                    $el: i,
                    el: i[0],
                    $dragEl: n,
                    dragEl: n[0]
                }),
                a.draggable && t.enableDraggable()
            },
            destroy() {
                const e = this;
                e.scrollbar.disableDraggable()
            }
        };
        var Ot = {
            name: "scrollbar",
            params: {
                scrollbar: {
                    el: null,
                    dragSize: "auto",
                    hide: !1,
                    draggable: !1,
                    snapOnRelease: !0,
                    lockClass: "swiper-scrollbar-lock",
                    dragClass: "swiper-scrollbar-drag"
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    scrollbar: {
                        init: It.init.bind(e),
                        destroy: It.destroy.bind(e),
                        updateSize: It.updateSize.bind(e),
                        setTranslate: It.setTranslate.bind(e),
                        setTransition: It.setTransition.bind(e),
                        enableDraggable: It.enableDraggable.bind(e),
                        disableDraggable: It.disableDraggable.bind(e),
                        setDragPosition: It.setDragPosition.bind(e),
                        getPointerPosition: It.getPointerPosition.bind(e),
                        onDragStart: It.onDragStart.bind(e),
                        onDragMove: It.onDragMove.bind(e),
                        onDragEnd: It.onDragEnd.bind(e),
                        isTouched: !1,
                        timeout: null,
                        dragTimeout: null
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.scrollbar.init(),
                    e.scrollbar.updateSize(),
                    e.scrollbar.setTranslate()
                },
                update() {
                    const e = this;
                    e.scrollbar.updateSize()
                },
                resize() {
                    const e = this;
                    e.scrollbar.updateSize()
                },
                observerUpdate() {
                    const e = this;
                    e.scrollbar.updateSize()
                },
                setTranslate() {
                    const e = this;
                    e.scrollbar.setTranslate()
                },
                setTransition(e) {
                    const t = this;
                    t.scrollbar.setTransition(e)
                },
                destroy() {
                    const e = this;
                    e.scrollbar.destroy()
                }
            }
        };
        const Dt = {
            setTransform(e, t) {
                const s = this
                  , {rtl: a} = s
                  , i = c(e)
                  , n = a ? -1 : 1
                  , r = i.attr("data-swiper-parallax") || "0";
                let o = i.attr("data-swiper-parallax-x")
                  , l = i.attr("data-swiper-parallax-y");
                const d = i.attr("data-swiper-parallax-scale")
                  , p = i.attr("data-swiper-parallax-opacity");
                if (o || l ? (o = o || "0",
                l = l || "0") : s.isHorizontal() ? (o = r,
                l = "0") : (l = r,
                o = "0"),
                o = o.indexOf("%") >= 0 ? parseInt(o, 10) * t * n + "%" : o * t * n + "px",
                l = l.indexOf("%") >= 0 ? parseInt(l, 10) * t + "%" : l * t + "px",
                "undefined" !== typeof p && null !== p) {
                    const e = p - (p - 1) * (1 - Math.abs(t));
                    i[0].style.opacity = e
                }
                if ("undefined" === typeof d || null === d)
                    i.transform(`translate3d(${o}, ${l}, 0px)`);
                else {
                    const e = d - (d - 1) * (1 - Math.abs(t));
                    i.transform(`translate3d(${o}, ${l}, 0px) scale(${e})`)
                }
            },
            setTranslate() {
                const e = this
                  , {$el: t, slides: s, progress: a, snapGrid: i} = e;
                t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t,s)=>{
                    e.parallax.setTransform(s, a)
                }
                ),
                s.each((t,s)=>{
                    let n = s.progress;
                    e.params.slidesPerGroup > 1 && "auto" !== e.params.slidesPerView && (n += Math.ceil(t / 2) - a * (i.length - 1)),
                    n = Math.min(Math.max(n, -1), 1),
                    c(s).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t,s)=>{
                        e.parallax.setTransform(s, n)
                    }
                    )
                }
                )
            },
            setTransition(e=this.params.speed) {
                const t = this
                  , {$el: s} = t;
                s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t,s)=>{
                    const a = c(s);
                    let i = parseInt(a.attr("data-swiper-parallax-duration"), 10) || e;
                    0 === e && (i = 0),
                    a.transition(i)
                }
                )
            }
        };
        var At = {
            name: "parallax",
            params: {
                parallax: {
                    enabled: !1
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    parallax: {
                        setTransform: Dt.setTransform.bind(e),
                        setTranslate: Dt.setTranslate.bind(e),
                        setTransition: Dt.setTransition.bind(e)
                    }
                })
            },
            on: {
                beforeInit() {
                    const e = this;
                    e.params.parallax.enabled && (e.params.watchSlidesProgress = !0,
                    e.originalParams.watchSlidesProgress = !0)
                },
                init() {
                    const e = this;
                    e.params.parallax.enabled && e.parallax.setTranslate()
                },
                setTranslate() {
                    const e = this;
                    e.params.parallax.enabled && e.parallax.setTranslate()
                },
                setTransition(e) {
                    const t = this;
                    t.params.parallax.enabled && t.parallax.setTransition(e)
                }
            }
        };
        const Gt = {
            getDistanceBetweenTouches(e) {
                if (e.targetTouches.length < 2)
                    return 1;
                const t = e.targetTouches[0].pageX
                  , s = e.targetTouches[0].pageY
                  , a = e.targetTouches[1].pageX
                  , i = e.targetTouches[1].pageY
                  , n = Math.sqrt((a - t) ** 2 + (i - s) ** 2);
                return n
            },
            onGestureStart(e) {
                const t = this
                  , s = t.params.zoom
                  , a = t.zoom
                  , {gesture: i} = a;
                if (a.fakeGestureTouched = !1,
                a.fakeGestureMoved = !1,
                !Z.gestures) {
                    if ("touchstart" !== e.type || "touchstart" === e.type && e.targetTouches.length < 2)
                        return;
                    a.fakeGestureTouched = !0,
                    i.scaleStart = Gt.getDistanceBetweenTouches(e)
                }
                i.$slideEl && i.$slideEl.length || (i.$slideEl = c(e.target).closest("." + t.params.slideClass),
                0 === i.$slideEl.length && (i.$slideEl = t.slides.eq(t.activeIndex)),
                i.$imageEl = i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),
                i.$imageWrapEl = i.$imageEl.parent("." + s.containerClass),
                i.maxRatio = i.$imageWrapEl.attr("data-swiper-zoom") || s.maxRatio,
                0 !== i.$imageWrapEl.length) ? (i.$imageEl && i.$imageEl.transition(0),
                t.zoom.isScaling = !0) : i.$imageEl = void 0
            },
            onGestureChange(e) {
                const t = this
                  , s = t.params.zoom
                  , a = t.zoom
                  , {gesture: i} = a;
                if (!Z.gestures) {
                    if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2)
                        return;
                    a.fakeGestureMoved = !0,
                    i.scaleMove = Gt.getDistanceBetweenTouches(e)
                }
                i.$imageEl && 0 !== i.$imageEl.length && (Z.gestures ? a.scale = e.scale * a.currentScale : a.scale = i.scaleMove / i.scaleStart * a.currentScale,
                a.scale > i.maxRatio && (a.scale = i.maxRatio - 1 + (a.scale - i.maxRatio + 1) ** .5),
                a.scale < s.minRatio && (a.scale = s.minRatio + 1 - (s.minRatio - a.scale + 1) ** .5),
                i.$imageEl.transform(`translate3d(0,0,0) scale(${a.scale})`))
            },
            onGestureEnd(e) {
                const t = this
                  , s = t.params.zoom
                  , a = t.zoom
                  , {gesture: i} = a;
                if (!Z.gestures) {
                    if (!a.fakeGestureTouched || !a.fakeGestureMoved)
                        return;
                    if ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2 && !Ve.android)
                        return;
                    a.fakeGestureTouched = !1,
                    a.fakeGestureMoved = !1
                }
                i.$imageEl && 0 !== i.$imageEl.length && (a.scale = Math.max(Math.min(a.scale, i.maxRatio), s.minRatio),
                i.$imageEl.transition(t.params.speed).transform(`translate3d(0,0,0) scale(${a.scale})`),
                a.currentScale = a.scale,
                a.isScaling = !1,
                1 === a.scale && (i.$slideEl = void 0))
            },
            onTouchStart(e) {
                const t = this
                  , s = t.zoom
                  , {gesture: a, image: i} = s;
                a.$imageEl && 0 !== a.$imageEl.length && (i.isTouched || (Ve.android && e.cancelable && e.preventDefault(),
                i.isTouched = !0,
                i.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX,
                i.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY))
            },
            onTouchMove(e) {
                const t = this
                  , s = t.zoom
                  , {gesture: a, image: i, velocity: n} = s;
                if (!a.$imageEl || 0 === a.$imageEl.length)
                    return;
                if (t.allowClick = !1,
                !i.isTouched || !a.$slideEl)
                    return;
                i.isMoved || (i.width = a.$imageEl[0].offsetWidth,
                i.height = a.$imageEl[0].offsetHeight,
                i.startX = J.getTranslate(a.$imageWrapEl[0], "x") || 0,
                i.startY = J.getTranslate(a.$imageWrapEl[0], "y") || 0,
                a.slideWidth = a.$slideEl[0].offsetWidth,
                a.slideHeight = a.$slideEl[0].offsetHeight,
                a.$imageWrapEl.transition(0),
                t.rtl && (i.startX = -i.startX,
                i.startY = -i.startY));
                const r = i.width * s.scale
                  , o = i.height * s.scale;
                if (!(r < a.slideWidth && o < a.slideHeight)) {
                    if (i.minX = Math.min(a.slideWidth / 2 - r / 2, 0),
                    i.maxX = -i.minX,
                    i.minY = Math.min(a.slideHeight / 2 - o / 2, 0),
                    i.maxY = -i.minY,
                    i.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX,
                    i.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY,
                    !i.isMoved && !s.isScaling) {
                        if (t.isHorizontal() && (Math.floor(i.minX) === Math.floor(i.startX) && i.touchesCurrent.x < i.touchesStart.x || Math.floor(i.maxX) === Math.floor(i.startX) && i.touchesCurrent.x > i.touchesStart.x))
                            return void (i.isTouched = !1);
                        if (!t.isHorizontal() && (Math.floor(i.minY) === Math.floor(i.startY) && i.touchesCurrent.y < i.touchesStart.y || Math.floor(i.maxY) === Math.floor(i.startY) && i.touchesCurrent.y > i.touchesStart.y))
                            return void (i.isTouched = !1)
                    }
                    e.cancelable && e.preventDefault(),
                    e.stopPropagation(),
                    i.isMoved = !0,
                    i.currentX = i.touchesCurrent.x - i.touchesStart.x + i.startX,
                    i.currentY = i.touchesCurrent.y - i.touchesStart.y + i.startY,
                    i.currentX < i.minX && (i.currentX = i.minX + 1 - (i.minX - i.currentX + 1) ** .8),
                    i.currentX > i.maxX && (i.currentX = i.maxX - 1 + (i.currentX - i.maxX + 1) ** .8),
                    i.currentY < i.minY && (i.currentY = i.minY + 1 - (i.minY - i.currentY + 1) ** .8),
                    i.currentY > i.maxY && (i.currentY = i.maxY - 1 + (i.currentY - i.maxY + 1) ** .8),
                    n.prevPositionX || (n.prevPositionX = i.touchesCurrent.x),
                    n.prevPositionY || (n.prevPositionY = i.touchesCurrent.y),
                    n.prevTime || (n.prevTime = Date.now()),
                    n.x = (i.touchesCurrent.x - n.prevPositionX) / (Date.now() - n.prevTime) / 2,
                    n.y = (i.touchesCurrent.y - n.prevPositionY) / (Date.now() - n.prevTime) / 2,
                    Math.abs(i.touchesCurrent.x - n.prevPositionX) < 2 && (n.x = 0),
                    Math.abs(i.touchesCurrent.y - n.prevPositionY) < 2 && (n.y = 0),
                    n.prevPositionX = i.touchesCurrent.x,
                    n.prevPositionY = i.touchesCurrent.y,
                    n.prevTime = Date.now(),
                    a.$imageWrapEl.transform(`translate3d(${i.currentX}px, ${i.currentY}px,0)`)
                }
            },
            onTouchEnd() {
                const e = this
                  , t = e.zoom
                  , {gesture: s, image: a, velocity: i} = t;
                if (!s.$imageEl || 0 === s.$imageEl.length)
                    return;
                if (!a.isTouched || !a.isMoved)
                    return a.isTouched = !1,
                    void (a.isMoved = !1);
                a.isTouched = !1,
                a.isMoved = !1;
                let n = 300
                  , r = 300;
                const o = i.x * n
                  , l = a.currentX + o
                  , d = i.y * r
                  , c = a.currentY + d;
                0 !== i.x && (n = Math.abs((l - a.currentX) / i.x)),
                0 !== i.y && (r = Math.abs((c - a.currentY) / i.y));
                const p = Math.max(n, r);
                a.currentX = l,
                a.currentY = c;
                const u = a.width * t.scale
                  , h = a.height * t.scale;
                a.minX = Math.min(s.slideWidth / 2 - u / 2, 0),
                a.maxX = -a.minX,
                a.minY = Math.min(s.slideHeight / 2 - h / 2, 0),
                a.maxY = -a.minY,
                a.currentX = Math.max(Math.min(a.currentX, a.maxX), a.minX),
                a.currentY = Math.max(Math.min(a.currentY, a.maxY), a.minY),
                s.$imageWrapEl.transition(p).transform(`translate3d(${a.currentX}px, ${a.currentY}px,0)`)
            },
            onTransitionEnd() {
                const e = this
                  , t = e.zoom
                  , {gesture: s} = t;
                s.$slideEl && e.previousIndex !== e.activeIndex && (s.$imageEl && s.$imageEl.transform("translate3d(0,0,0) scale(1)"),
                s.$imageWrapEl && s.$imageWrapEl.transform("translate3d(0,0,0)"),
                t.scale = 1,
                t.currentScale = 1,
                s.$slideEl = void 0,
                s.$imageEl = void 0,
                s.$imageWrapEl = void 0)
            },
            toggle(e) {
                const t = this
                  , s = t.zoom;
                s.scale && 1 !== s.scale ? s.out() : s.in(e)
            },
            in(e) {
                const t = this
                  , s = t.zoom
                  , a = t.params.zoom
                  , {gesture: i, image: n} = s;
                if (i.$slideEl || (t.params.virtual && t.params.virtual.enabled && t.virtual ? i.$slideEl = t.$wrapperEl.children("." + t.params.slideActiveClass) : i.$slideEl = t.slides.eq(t.activeIndex),
                i.$imageEl = i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),
                i.$imageWrapEl = i.$imageEl.parent("." + a.containerClass)),
                !i.$imageEl || 0 === i.$imageEl.length)
                    return;
                let r, o, l, d, c, p, u, h, m, f, g, v, b, y, w, x, E, T;
                i.$slideEl.addClass("" + a.zoomedSlideClass),
                "undefined" === typeof n.touchesStart.x && e ? (r = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX,
                o = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY) : (r = n.touchesStart.x,
                o = n.touchesStart.y),
                s.scale = i.$imageWrapEl.attr("data-swiper-zoom") || a.maxRatio,
                s.currentScale = i.$imageWrapEl.attr("data-swiper-zoom") || a.maxRatio,
                e ? (E = i.$slideEl[0].offsetWidth,
                T = i.$slideEl[0].offsetHeight,
                l = i.$slideEl.offset().left,
                d = i.$slideEl.offset().top,
                c = l + E / 2 - r,
                p = d + T / 2 - o,
                m = i.$imageEl[0].offsetWidth,
                f = i.$imageEl[0].offsetHeight,
                g = m * s.scale,
                v = f * s.scale,
                b = Math.min(E / 2 - g / 2, 0),
                y = Math.min(T / 2 - v / 2, 0),
                w = -b,
                x = -y,
                u = c * s.scale,
                h = p * s.scale,
                u < b && (u = b),
                u > w && (u = w),
                h < y && (h = y),
                h > x && (h = x)) : (u = 0,
                h = 0),
                i.$imageWrapEl.transition(300).transform(`translate3d(${u}px, ${h}px,0)`),
                i.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)
            },
            out() {
                const e = this
                  , t = e.zoom
                  , s = e.params.zoom
                  , {gesture: a} = t;
                a.$slideEl || (e.params.virtual && e.params.virtual.enabled && e.virtual ? a.$slideEl = e.$wrapperEl.children("." + e.params.slideActiveClass) : a.$slideEl = e.slides.eq(e.activeIndex),
                a.$imageEl = a.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),
                a.$imageWrapEl = a.$imageEl.parent("." + s.containerClass)),
                a.$imageEl && 0 !== a.$imageEl.length && (t.scale = 1,
                t.currentScale = 1,
                a.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),
                a.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),
                a.$slideEl.removeClass("" + s.zoomedSlideClass),
                a.$slideEl = void 0)
            },
            enable() {
                const e = this
                  , t = e.zoom;
                if (t.enabled)
                    return;
                t.enabled = !0;
                const s = !("touchstart" !== e.touchEvents.start || !Z.passiveListener || !e.params.passiveListeners) && {
                    passive: !0,
                    capture: !1
                }
                  , a = !Z.passiveListener || {
                    passive: !1,
                    capture: !0
                }
                  , i = "." + e.params.slideClass;
                Z.gestures ? (e.$wrapperEl.on("gesturestart", i, t.onGestureStart, s),
                e.$wrapperEl.on("gesturechange", i, t.onGestureChange, s),
                e.$wrapperEl.on("gestureend", i, t.onGestureEnd, s)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.on(e.touchEvents.start, i, t.onGestureStart, s),
                e.$wrapperEl.on(e.touchEvents.move, i, t.onGestureChange, a),
                e.$wrapperEl.on(e.touchEvents.end, i, t.onGestureEnd, s),
                e.touchEvents.cancel && e.$wrapperEl.on(e.touchEvents.cancel, i, t.onGestureEnd, s)),
                e.$wrapperEl.on(e.touchEvents.move, "." + e.params.zoom.containerClass, t.onTouchMove, a)
            },
            disable() {
                const e = this
                  , t = e.zoom;
                if (!t.enabled)
                    return;
                e.zoom.enabled = !1;
                const s = !("touchstart" !== e.touchEvents.start || !Z.passiveListener || !e.params.passiveListeners) && {
                    passive: !0,
                    capture: !1
                }
                  , a = !Z.passiveListener || {
                    passive: !1,
                    capture: !0
                }
                  , i = "." + e.params.slideClass;
                Z.gestures ? (e.$wrapperEl.off("gesturestart", i, t.onGestureStart, s),
                e.$wrapperEl.off("gesturechange", i, t.onGestureChange, s),
                e.$wrapperEl.off("gestureend", i, t.onGestureEnd, s)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.off(e.touchEvents.start, i, t.onGestureStart, s),
                e.$wrapperEl.off(e.touchEvents.move, i, t.onGestureChange, a),
                e.$wrapperEl.off(e.touchEvents.end, i, t.onGestureEnd, s),
                e.touchEvents.cancel && e.$wrapperEl.off(e.touchEvents.cancel, i, t.onGestureEnd, s)),
                e.$wrapperEl.off(e.touchEvents.move, "." + e.params.zoom.containerClass, t.onTouchMove, a)
            }
        };
        var Nt = {
            name: "zoom",
            params: {
                zoom: {
                    enabled: !1,
                    maxRatio: 3,
                    minRatio: 1,
                    toggle: !0,
                    containerClass: "swiper-zoom-container",
                    zoomedSlideClass: "swiper-slide-zoomed"
                }
            },
            create() {
                const e = this
                  , t = {
                    enabled: !1,
                    scale: 1,
                    currentScale: 1,
                    isScaling: !1,
                    gesture: {
                        $slideEl: void 0,
                        slideWidth: void 0,
                        slideHeight: void 0,
                        $imageEl: void 0,
                        $imageWrapEl: void 0,
                        maxRatio: 3
                    },
                    image: {
                        isTouched: void 0,
                        isMoved: void 0,
                        currentX: void 0,
                        currentY: void 0,
                        minX: void 0,
                        minY: void 0,
                        maxX: void 0,
                        maxY: void 0,
                        width: void 0,
                        height: void 0,
                        startX: void 0,
                        startY: void 0,
                        touchesStart: {},
                        touchesCurrent: {}
                    },
                    velocity: {
                        x: void 0,
                        y: void 0,
                        prevPositionX: void 0,
                        prevPositionY: void 0,
                        prevTime: void 0
                    }
                };
                "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(s=>{
                    t[s] = Gt[s].bind(e)
                }
                ),
                J.extend(e, {
                    zoom: t
                });
                let s = 1;
                Object.defineProperty(e.zoom, "scale", {
                    get() {
                        return s
                    },
                    set(t) {
                        if (s !== t) {
                            const s = e.zoom.gesture.$imageEl ? e.zoom.gesture.$imageEl[0] : void 0
                              , a = e.zoom.gesture.$slideEl ? e.zoom.gesture.$slideEl[0] : void 0;
                            e.emit("zoomChange", t, s, a)
                        }
                        s = t
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.params.zoom.enabled && e.zoom.enable()
                },
                destroy() {
                    const e = this;
                    e.zoom.disable()
                },
                touchStart(e) {
                    const t = this;
                    t.zoom.enabled && t.zoom.onTouchStart(e)
                },
                touchEnd(e) {
                    const t = this;
                    t.zoom.enabled && t.zoom.onTouchEnd(e)
                },
                doubleTap(e) {
                    const t = this;
                    t.params.zoom.enabled && t.zoom.enabled && t.params.zoom.toggle && t.zoom.toggle(e)
                },
                transitionEnd() {
                    const e = this;
                    e.zoom.enabled && e.params.zoom.enabled && e.zoom.onTransitionEnd()
                },
                slideChange() {
                    const e = this;
                    e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && e.zoom.onTransitionEnd()
                }
            }
        };
        const Ht = {
            loadInSlide(e, t=!0) {
                const s = this
                  , a = s.params.lazy;
                if ("undefined" === typeof e)
                    return;
                if (0 === s.slides.length)
                    return;
                const i = s.virtual && s.params.virtual.enabled
                  , n = i ? s.$wrapperEl.children(`.${s.params.slideClass}[data-swiper-slide-index="${e}"]`) : s.slides.eq(e);
                let r = n.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);
                !n.hasClass(a.elementClass) || n.hasClass(a.loadedClass) || n.hasClass(a.loadingClass) || (r = r.add(n[0])),
                0 !== r.length && r.each((e,i)=>{
                    const r = c(i);
                    r.addClass(a.loadingClass);
                    const o = r.attr("data-background")
                      , l = r.attr("data-src")
                      , d = r.attr("data-srcset")
                      , p = r.attr("data-sizes")
                      , u = r.parent("picture");
                    s.loadImage(r[0], l || o, d, p, !1, ()=>{
                        if ("undefined" !== typeof s && null !== s && s && (!s || s.params) && !s.destroyed) {
                            if (o ? (r.css("background-image", `url("${o}")`),
                            r.removeAttr("data-background")) : (d && (r.attr("srcset", d),
                            r.removeAttr("data-srcset")),
                            p && (r.attr("sizes", p),
                            r.removeAttr("data-sizes")),
                            u.length && u.children("source").each((e,t)=>{
                                const s = c(t);
                                s.attr("data-srcset") && (s.attr("srcset", s.attr("data-srcset")),
                                s.removeAttr("data-srcset"))
                            }
                            ),
                            l && (r.attr("src", l),
                            r.removeAttr("data-src"))),
                            r.addClass(a.loadedClass).removeClass(a.loadingClass),
                            n.find("." + a.preloaderClass).remove(),
                            s.params.loop && t) {
                                const e = n.attr("data-swiper-slide-index");
                                if (n.hasClass(s.params.slideDuplicateClass)) {
                                    const t = s.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${s.params.slideDuplicateClass})`);
                                    s.lazy.loadInSlide(t.index(), !1)
                                } else {
                                    const t = s.$wrapperEl.children(`.${s.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`);
                                    s.lazy.loadInSlide(t.index(), !1)
                                }
                            }
                            s.emit("lazyImageReady", n[0], r[0]),
                            s.params.autoHeight && s.updateAutoHeight()
                        }
                    }
                    ),
                    s.emit("lazyImageLoad", n[0], r[0])
                }
                )
            },
            load() {
                const e = this
                  , {$wrapperEl: t, params: s, slides: a, activeIndex: i} = e
                  , n = e.virtual && s.virtual.enabled
                  , r = s.lazy;
                let o = s.slidesPerView;
                function l(e) {
                    if (n) {
                        if (t.children(`.${s.slideClass}[data-swiper-slide-index="${e}"]`).length)
                            return !0
                    } else if (a[e])
                        return !0;
                    return !1
                }
                function d(e) {
                    return n ? c(e).attr("data-swiper-slide-index") : c(e).index()
                }
                if ("auto" === o && (o = 0),
                e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0),
                e.params.watchSlidesVisibility)
                    t.children("." + s.slideVisibleClass).each((t,s)=>{
                        const a = n ? c(s).attr("data-swiper-slide-index") : c(s).index();
                        e.lazy.loadInSlide(a)
                    }
                    );
                else if (o > 1)
                    for (let c = i; c < i + o; c += 1)
                        l(c) && e.lazy.loadInSlide(c);
                else
                    e.lazy.loadInSlide(i);
                if (r.loadPrevNext)
                    if (o > 1 || r.loadPrevNextAmount && r.loadPrevNextAmount > 1) {
                        const t = r.loadPrevNextAmount
                          , s = o
                          , n = Math.min(i + s + Math.max(t, s), a.length)
                          , d = Math.max(i - Math.max(s, t), 0);
                        for (let a = i + o; a < n; a += 1)
                            l(a) && e.lazy.loadInSlide(a);
                        for (let a = d; a < i; a += 1)
                            l(a) && e.lazy.loadInSlide(a)
                    } else {
                        const a = t.children("." + s.slideNextClass);
                        a.length > 0 && e.lazy.loadInSlide(d(a));
                        const i = t.children("." + s.slidePrevClass);
                        i.length > 0 && e.lazy.loadInSlide(d(i))
                    }
            }
        };
        var Bt = {
            name: "lazy",
            params: {
                lazy: {
                    enabled: !1,
                    loadPrevNext: !1,
                    loadPrevNextAmount: 1,
                    loadOnTransitionStart: !1,
                    elementClass: "swiper-lazy",
                    loadingClass: "swiper-lazy-loading",
                    loadedClass: "swiper-lazy-loaded",
                    preloaderClass: "swiper-lazy-preloader"
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    lazy: {
                        initialImageLoaded: !1,
                        load: Ht.load.bind(e),
                        loadInSlide: Ht.loadInSlide.bind(e)
                    }
                })
            },
            on: {
                beforeInit() {
                    const e = this;
                    e.params.lazy.enabled && e.params.preloadImages && (e.params.preloadImages = !1)
                },
                init() {
                    const e = this;
                    e.params.lazy.enabled && !e.params.loop && 0 === e.params.initialSlide && e.lazy.load()
                },
                scroll() {
                    const e = this;
                    e.params.freeMode && !e.params.freeModeSticky && e.lazy.load()
                },
                resize() {
                    const e = this;
                    e.params.lazy.enabled && e.lazy.load()
                },
                scrollbarDragMove() {
                    const e = this;
                    e.params.lazy.enabled && e.lazy.load()
                },
                transitionStart() {
                    const e = this;
                    e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load()
                },
                transitionEnd() {
                    const e = this;
                    e.params.lazy.enabled && !e.params.lazy.loadOnTransitionStart && e.lazy.load()
                },
                slideChange() {
                    const e = this;
                    e.params.lazy.enabled && e.params.cssMode && e.lazy.load()
                }
            }
        };
        const Xt = {
            LinearSpline: function(e, t) {
                const s = function() {
                    let e, t, s;
                    return (a,i)=>{
                        t = -1,
                        e = a.length;
                        while (e - t > 1)
                            s = e + t >> 1,
                            a[s] <= i ? t = s : e = s;
                        return e
                    }
                }();
                let a, i;
                return this.x = e,
                this.y = t,
                this.lastIndex = e.length - 1,
                this.interpolate = function(e) {
                    return e ? (i = s(this.x, e),
                    a = i - 1,
                    (e - this.x[a]) * (this.y[i] - this.y[a]) / (this.x[i] - this.x[a]) + this.y[a]) : 0
                }
                ,
                this
            },
            getInterpolateFunction(e) {
                const t = this;
                t.controller.spline || (t.controller.spline = t.params.loop ? new Xt.LinearSpline(t.slidesGrid,e.slidesGrid) : new Xt.LinearSpline(t.snapGrid,e.snapGrid))
            },
            setTranslate(e, t) {
                const s = this
                  , a = s.controller.control;
                let i, n;
                function r(e) {
                    const t = s.rtlTranslate ? -s.translate : s.translate;
                    "slide" === s.params.controller.by && (s.controller.getInterpolateFunction(e),
                    n = -s.controller.spline.interpolate(-t)),
                    n && "container" !== s.params.controller.by || (i = (e.maxTranslate() - e.minTranslate()) / (s.maxTranslate() - s.minTranslate()),
                    n = (t - s.minTranslate()) * i + e.minTranslate()),
                    s.params.controller.inverse && (n = e.maxTranslate() - n),
                    e.updateProgress(n),
                    e.setTranslate(n, s),
                    e.updateActiveIndex(),
                    e.updateSlidesClasses()
                }
                if (Array.isArray(a))
                    for (let o = 0; o < a.length; o += 1)
                        a[o] !== t && a[o]instanceof ht && r(a[o]);
                else
                    a instanceof ht && t !== a && r(a)
            },
            setTransition(e, t) {
                const s = this
                  , a = s.controller.control;
                let i;
                function n(t) {
                    t.setTransition(e, s),
                    0 !== e && (t.transitionStart(),
                    t.params.autoHeight && J.nextTick(()=>{
                        t.updateAutoHeight()
                    }
                    ),
                    t.$wrapperEl.transitionEnd(()=>{
                        a && (t.params.loop && "slide" === s.params.controller.by && t.loopFix(),
                        t.transitionEnd())
                    }
                    ))
                }
                if (Array.isArray(a))
                    for (i = 0; i < a.length; i += 1)
                        a[i] !== t && a[i]instanceof ht && n(a[i]);
                else
                    a instanceof ht && t !== a && n(a)
            }
        };
        var Vt = {
            name: "controller",
            params: {
                controller: {
                    control: void 0,
                    inverse: !1,
                    by: "slide"
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    controller: {
                        control: e.params.controller.control,
                        getInterpolateFunction: Xt.getInterpolateFunction.bind(e),
                        setTranslate: Xt.setTranslate.bind(e),
                        setTransition: Xt.setTransition.bind(e)
                    }
                })
            },
            on: {
                update() {
                    const e = this;
                    e.controller.control && e.controller.spline && (e.controller.spline = void 0,
                    delete e.controller.spline)
                },
                resize() {
                    const e = this;
                    e.controller.control && e.controller.spline && (e.controller.spline = void 0,
                    delete e.controller.spline)
                },
                observerUpdate() {
                    const e = this;
                    e.controller.control && e.controller.spline && (e.controller.spline = void 0,
                    delete e.controller.spline)
                },
                setTranslate(e, t) {
                    const s = this;
                    s.controller.control && s.controller.setTranslate(e, t)
                },
                setTransition(e, t) {
                    const s = this;
                    s.controller.control && s.controller.setTransition(e, t)
                }
            }
        };
        const Yt = {
            makeElFocusable(e) {
                return e.attr("tabIndex", "0"),
                e
            },
            makeElNotFocusable(e) {
                return e.attr("tabIndex", "-1"),
                e
            },
            addElRole(e, t) {
                return e.attr("role", t),
                e
            },
            addElLabel(e, t) {
                return e.attr("aria-label", t),
                e
            },
            disableEl(e) {
                return e.attr("aria-disabled", !0),
                e
            },
            enableEl(e) {
                return e.attr("aria-disabled", !1),
                e
            },
            onEnterKey(e) {
                const t = this
                  , s = t.params.a11y;
                if (13 !== e.keyCode)
                    return;
                const a = c(e.target);
                t.navigation && t.navigation.$nextEl && a.is(t.navigation.$nextEl) && (t.isEnd && !t.params.loop || t.slideNext(),
                t.isEnd ? t.a11y.notify(s.lastSlideMessage) : t.a11y.notify(s.nextSlideMessage)),
                t.navigation && t.navigation.$prevEl && a.is(t.navigation.$prevEl) && (t.isBeginning && !t.params.loop || t.slidePrev(),
                t.isBeginning ? t.a11y.notify(s.firstSlideMessage) : t.a11y.notify(s.prevSlideMessage)),
                t.pagination && a.is("." + t.params.pagination.bulletClass) && a[0].click()
            },
            notify(e) {
                const t = this
                  , s = t.a11y.liveRegion;
                0 !== s.length && (s.html(""),
                s.html(e))
            },
            updateNavigation() {
                const e = this;
                if (e.params.loop || !e.navigation)
                    return;
                const {$nextEl: t, $prevEl: s} = e.navigation;
                s && s.length > 0 && (e.isBeginning ? (e.a11y.disableEl(s),
                e.a11y.makeElNotFocusable(s)) : (e.a11y.enableEl(s),
                e.a11y.makeElFocusable(s))),
                t && t.length > 0 && (e.isEnd ? (e.a11y.disableEl(t),
                e.a11y.makeElNotFocusable(t)) : (e.a11y.enableEl(t),
                e.a11y.makeElFocusable(t)))
            },
            updatePagination() {
                const e = this
                  , t = e.params.a11y;
                e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.bullets.each((s,a)=>{
                    const i = c(a);
                    e.a11y.makeElFocusable(i),
                    e.a11y.addElRole(i, "button"),
                    e.a11y.addElLabel(i, t.paginationBulletMessage.replace(/\{\{index\}\}/, i.index() + 1))
                }
                )
            },
            init() {
                const e = this;
                e.$el.append(e.a11y.liveRegion);
                const t = e.params.a11y;
                let s, a;
                e.navigation && e.navigation.$nextEl && (s = e.navigation.$nextEl),
                e.navigation && e.navigation.$prevEl && (a = e.navigation.$prevEl),
                s && (e.a11y.makeElFocusable(s),
                e.a11y.addElRole(s, "button"),
                e.a11y.addElLabel(s, t.nextSlideMessage),
                s.on("keydown", e.a11y.onEnterKey)),
                a && (e.a11y.makeElFocusable(a),
                e.a11y.addElRole(a, "button"),
                e.a11y.addElLabel(a, t.prevSlideMessage),
                a.on("keydown", e.a11y.onEnterKey)),
                e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on("keydown", "." + e.params.pagination.bulletClass, e.a11y.onEnterKey)
            },
            destroy() {
                const e = this;
                let t, s;
                e.a11y.liveRegion && e.a11y.liveRegion.length > 0 && e.a11y.liveRegion.remove(),
                e.navigation && e.navigation.$nextEl && (t = e.navigation.$nextEl),
                e.navigation && e.navigation.$prevEl && (s = e.navigation.$prevEl),
                t && t.off("keydown", e.a11y.onEnterKey),
                s && s.off("keydown", e.a11y.onEnterKey),
                e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.off("keydown", "." + e.params.pagination.bulletClass, e.a11y.onEnterKey)
            }
        };
        var Ft = {
            name: "a11y",
            params: {
                a11y: {
                    enabled: !0,
                    notificationClass: "swiper-notification",
                    prevSlideMessage: "Previous slide",
                    nextSlideMessage: "Next slide",
                    firstSlideMessage: "This is the first slide",
                    lastSlideMessage: "This is the last slide",
                    paginationBulletMessage: "Go to slide {{index}}"
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    a11y: {
                        liveRegion: c(`<span class="${e.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`)
                    }
                }),
                Object.keys(Yt).forEach(t=>{
                    e.a11y[t] = Yt[t].bind(e)
                }
                )
            },
            on: {
                init() {
                    const e = this;
                    e.params.a11y.enabled && (e.a11y.init(),
                    e.a11y.updateNavigation())
                },
                toEdge() {
                    const e = this;
                    e.params.a11y.enabled && e.a11y.updateNavigation()
                },
                fromEdge() {
                    const e = this;
                    e.params.a11y.enabled && e.a11y.updateNavigation()
                },
                paginationUpdate() {
                    const e = this;
                    e.params.a11y.enabled && e.a11y.updatePagination()
                },
                destroy() {
                    const e = this;
                    e.params.a11y.enabled && e.a11y.destroy()
                }
            }
        };
        const Wt = {
            init() {
                const e = this;
                if (!e.params.history)
                    return;
                if (!o.history || !o.history.pushState)
                    return e.params.history.enabled = !1,
                    void (e.params.hashNavigation.enabled = !0);
                const t = e.history;
                t.initialized = !0,
                t.paths = Wt.getPathValues(),
                (t.paths.key || t.paths.value) && (t.scrollToSlide(0, t.paths.value, e.params.runCallbacksOnInit),
                e.params.history.replaceState || o.addEventListener("popstate", e.history.setHistoryPopState))
            },
            destroy() {
                const e = this;
                e.params.history.replaceState || o.removeEventListener("popstate", e.history.setHistoryPopState)
            },
            setHistoryPopState() {
                const e = this;
                e.history.paths = Wt.getPathValues(),
                e.history.scrollToSlide(e.params.speed, e.history.paths.value, !1)
            },
            getPathValues() {
                const e = o.location.pathname.slice(1).split("/").filter(e=>"" !== e)
                  , t = e.length
                  , s = e[t - 2]
                  , a = e[t - 1];
                return {
                    key: s,
                    value: a
                }
            },
            setHistory(e, t) {
                const s = this;
                if (!s.history.initialized || !s.params.history.enabled)
                    return;
                const a = s.slides.eq(t);
                let i = Wt.slugify(a.attr("data-history"));
                o.location.pathname.includes(e) || (i = `${e}/${i}`);
                const n = o.history.state;
                n && n.value === i || (s.params.history.replaceState ? o.history.replaceState({
                    value: i
                }, null, i) : o.history.pushState({
                    value: i
                }, null, i))
            },
            slugify(e) {
                return e.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "")
            },
            scrollToSlide(e, t, s) {
                const a = this;
                if (t)
                    for (let i = 0, n = a.slides.length; i < n; i += 1) {
                        const n = a.slides.eq(i)
                          , r = Wt.slugify(n.attr("data-history"));
                        if (r === t && !n.hasClass(a.params.slideDuplicateClass)) {
                            const t = n.index();
                            a.slideTo(t, e, s)
                        }
                    }
                else
                    a.slideTo(0, e, s)
            }
        };
        var Rt = {
            name: "history",
            params: {
                history: {
                    enabled: !1,
                    replaceState: !1,
                    key: "slides"
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    history: {
                        init: Wt.init.bind(e),
                        setHistory: Wt.setHistory.bind(e),
                        setHistoryPopState: Wt.setHistoryPopState.bind(e),
                        scrollToSlide: Wt.scrollToSlide.bind(e),
                        destroy: Wt.destroy.bind(e)
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.params.history.enabled && e.history.init()
                },
                destroy() {
                    const e = this;
                    e.params.history.enabled && e.history.destroy()
                },
                transitionEnd() {
                    const e = this;
                    e.history.initialized && e.history.setHistory(e.params.history.key, e.activeIndex)
                },
                slideChange() {
                    const e = this;
                    e.history.initialized && e.params.cssMode && e.history.setHistory(e.params.history.key, e.activeIndex)
                }
            }
        };
        const qt = {
            onHashCange() {
                const e = this;
                e.emit("hashChange");
                const t = n.location.hash.replace("#", "")
                  , s = e.slides.eq(e.activeIndex).attr("data-hash");
                if (t !== s) {
                    const s = e.$wrapperEl.children(`.${e.params.slideClass}[data-hash="${t}"]`).index();
                    if ("undefined" === typeof s)
                        return;
                    e.slideTo(s)
                }
            },
            setHash() {
                const e = this;
                if (e.hashNavigation.initialized && e.params.hashNavigation.enabled)
                    if (e.params.hashNavigation.replaceState && o.history && o.history.replaceState)
                        o.history.replaceState(null, null, "#" + e.slides.eq(e.activeIndex).attr("data-hash") || ""),
                        e.emit("hashSet");
                    else {
                        const t = e.slides.eq(e.activeIndex)
                          , s = t.attr("data-hash") || t.attr("data-history");
                        n.location.hash = s || "",
                        e.emit("hashSet")
                    }
            },
            init() {
                const e = this;
                if (!e.params.hashNavigation.enabled || e.params.history && e.params.history.enabled)
                    return;
                e.hashNavigation.initialized = !0;
                const t = n.location.hash.replace("#", "");
                if (t) {
                    const s = 0;
                    for (let a = 0, i = e.slides.length; a < i; a += 1) {
                        const i = e.slides.eq(a)
                          , n = i.attr("data-hash") || i.attr("data-history");
                        if (n === t && !i.hasClass(e.params.slideDuplicateClass)) {
                            const t = i.index();
                            e.slideTo(t, s, e.params.runCallbacksOnInit, !0)
                        }
                    }
                }
                e.params.hashNavigation.watchState && c(o).on("hashchange", e.hashNavigation.onHashCange)
            },
            destroy() {
                const e = this;
                e.params.hashNavigation.watchState && c(o).off("hashchange", e.hashNavigation.onHashCange)
            }
        };
        var jt = {
            name: "hash-navigation",
            params: {
                hashNavigation: {
                    enabled: !1,
                    replaceState: !1,
                    watchState: !1
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    hashNavigation: {
                        initialized: !1,
                        init: qt.init.bind(e),
                        destroy: qt.destroy.bind(e),
                        setHash: qt.setHash.bind(e),
                        onHashCange: qt.onHashCange.bind(e)
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.params.hashNavigation.enabled && e.hashNavigation.init()
                },
                destroy() {
                    const e = this;
                    e.params.hashNavigation.enabled && e.hashNavigation.destroy()
                },
                transitionEnd() {
                    const e = this;
                    e.hashNavigation.initialized && e.hashNavigation.setHash()
                },
                slideChange() {
                    const e = this;
                    e.hashNavigation.initialized && e.params.cssMode && e.hashNavigation.setHash()
                }
            }
        };
        const _t = {
            run() {
                const e = this
                  , t = e.slides.eq(e.activeIndex);
                let s = e.params.autoplay.delay;
                t.attr("data-swiper-autoplay") && (s = t.attr("data-swiper-autoplay") || e.params.autoplay.delay),
                clearTimeout(e.autoplay.timeout),
                e.autoplay.timeout = J.nextTick(()=>{
                    e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(),
                    e.slidePrev(e.params.speed, !0, !0),
                    e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0),
                    e.emit("autoplay")) : (e.slidePrev(e.params.speed, !0, !0),
                    e.emit("autoplay")) : e.params.loop ? (e.loopFix(),
                    e.slideNext(e.params.speed, !0, !0),
                    e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e.params.speed, !0, !0),
                    e.emit("autoplay")) : (e.slideNext(e.params.speed, !0, !0),
                    e.emit("autoplay")),
                    e.params.cssMode && e.autoplay.running && e.autoplay.run()
                }
                , s)
            },
            start() {
                const e = this;
                return "undefined" === typeof e.autoplay.timeout && (!e.autoplay.running && (e.autoplay.running = !0,
                e.emit("autoplayStart"),
                e.autoplay.run(),
                !0))
            },
            stop() {
                const e = this;
                return !!e.autoplay.running && ("undefined" !== typeof e.autoplay.timeout && (e.autoplay.timeout && (clearTimeout(e.autoplay.timeout),
                e.autoplay.timeout = void 0),
                e.autoplay.running = !1,
                e.emit("autoplayStop"),
                !0))
            },
            pause(e) {
                const t = this;
                t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout),
                t.autoplay.paused = !0,
                0 !== e && t.params.autoplay.waitForTransition ? (t.$wrapperEl[0].addEventListener("transitionend", t.autoplay.onTransitionEnd),
                t.$wrapperEl[0].addEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd)) : (t.autoplay.paused = !1,
                t.autoplay.run())))
            }
        };
        var Kt = {
            name: "autoplay",
            params: {
                autoplay: {
                    enabled: !1,
                    delay: 3e3,
                    waitForTransition: !0,
                    disableOnInteraction: !0,
                    stopOnLastSlide: !1,
                    reverseDirection: !1
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    autoplay: {
                        running: !1,
                        paused: !1,
                        run: _t.run.bind(e),
                        start: _t.start.bind(e),
                        stop: _t.stop.bind(e),
                        pause: _t.pause.bind(e),
                        onVisibilityChange() {
                            "hidden" === document.visibilityState && e.autoplay.running && e.autoplay.pause(),
                            "visible" === document.visibilityState && e.autoplay.paused && (e.autoplay.run(),
                            e.autoplay.paused = !1)
                        },
                        onTransitionEnd(t) {
                            e && !e.destroyed && e.$wrapperEl && t.target === this && (e.$wrapperEl[0].removeEventListener("transitionend", e.autoplay.onTransitionEnd),
                            e.$wrapperEl[0].removeEventListener("webkitTransitionEnd", e.autoplay.onTransitionEnd),
                            e.autoplay.paused = !1,
                            e.autoplay.running ? e.autoplay.run() : e.autoplay.stop())
                        }
                    }
                })
            },
            on: {
                init() {
                    const e = this;
                    e.params.autoplay.enabled && (e.autoplay.start(),
                    document.addEventListener("visibilitychange", e.autoplay.onVisibilityChange))
                },
                beforeTransitionStart(e, t) {
                    const s = this;
                    s.autoplay.running && (t || !s.params.autoplay.disableOnInteraction ? s.autoplay.pause(e) : s.autoplay.stop())
                },
                sliderFirstMove() {
                    const e = this;
                    e.autoplay.running && (e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause())
                },
                touchEnd() {
                    const e = this;
                    e.params.cssMode && e.autoplay.paused && !e.params.autoplay.disableOnInteraction && e.autoplay.run()
                },
                destroy() {
                    const e = this;
                    e.autoplay.running && e.autoplay.stop(),
                    document.removeEventListener("visibilitychange", e.autoplay.onVisibilityChange)
                }
            }
        };
        const Ut = {
            setTranslate() {
                const e = this
                  , {slides: t} = e;
                for (let s = 0; s < t.length; s += 1) {
                    const t = e.slides.eq(s)
                      , a = t[0].swiperSlideOffset;
                    let i = -a;
                    e.params.virtualTranslate || (i -= e.translate);
                    let n = 0;
                    e.isHorizontal() || (n = i,
                    i = 0);
                    const r = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(t[0].progress), 0) : 1 + Math.min(Math.max(t[0].progress, -1), 0);
                    t.css({
                        opacity: r
                    }).transform(`translate3d(${i}px, ${n}px, 0px)`)
                }
            },
            setTransition(e) {
                const t = this
                  , {slides: s, $wrapperEl: a} = t;
                if (s.transition(e),
                t.params.virtualTranslate && 0 !== e) {
                    let e = !1;
                    s.transitionEnd(()=>{
                        if (e)
                            return;
                        if (!t || t.destroyed)
                            return;
                        e = !0,
                        t.animating = !1;
                        const s = ["webkitTransitionEnd", "transitionend"];
                        for (let e = 0; e < s.length; e += 1)
                            a.trigger(s[e])
                    }
                    )
                }
            }
        };
        var Jt = {
            name: "effect-fade",
            params: {
                fadeEffect: {
                    crossFade: !1
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    fadeEffect: {
                        setTranslate: Ut.setTranslate.bind(e),
                        setTransition: Ut.setTransition.bind(e)
                    }
                })
            },
            on: {
                beforeInit() {
                    const e = this;
                    if ("fade" !== e.params.effect)
                        return;
                    e.classNames.push(e.params.containerModifierClass + "fade");
                    const t = {
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerGroup: 1,
                        watchSlidesProgress: !0,
                        spaceBetween: 0,
                        virtualTranslate: !0
                    };
                    J.extend(e.params, t),
                    J.extend(e.originalParams, t)
                },
                setTranslate() {
                    const e = this;
                    "fade" === e.params.effect && e.fadeEffect.setTranslate()
                },
                setTransition(e) {
                    const t = this;
                    "fade" === t.params.effect && t.fadeEffect.setTransition(e)
                }
            }
        };
        const Zt = {
            setTranslate() {
                const e = this
                  , {$el: t, $wrapperEl: s, slides: a, width: i, height: n, rtlTranslate: r, size: o} = e
                  , l = e.params.cubeEffect
                  , d = e.isHorizontal()
                  , p = e.virtual && e.params.virtual.enabled;
                let u, h = 0;
                l.shadow && (d ? (u = s.find(".swiper-cube-shadow"),
                0 === u.length && (u = c('<div class="swiper-cube-shadow"></div>'),
                s.append(u)),
                u.css({
                    height: i + "px"
                })) : (u = t.find(".swiper-cube-shadow"),
                0 === u.length && (u = c('<div class="swiper-cube-shadow"></div>'),
                t.append(u))));
                for (let f = 0; f < a.length; f += 1) {
                    const e = a.eq(f);
                    let t = f;
                    p && (t = parseInt(e.attr("data-swiper-slide-index"), 10));
                    let s = 90 * t
                      , i = Math.floor(s / 360);
                    r && (s = -s,
                    i = Math.floor(-s / 360));
                    const n = Math.max(Math.min(e[0].progress, 1), -1);
                    let u = 0
                      , m = 0
                      , g = 0;
                    t % 4 === 0 ? (u = 4 * -i * o,
                    g = 0) : (t - 1) % 4 === 0 ? (u = 0,
                    g = 4 * -i * o) : (t - 2) % 4 === 0 ? (u = o + 4 * i * o,
                    g = o) : (t - 3) % 4 === 0 && (u = -o,
                    g = 3 * o + 4 * o * i),
                    r && (u = -u),
                    d || (m = u,
                    u = 0);
                    const v = `rotateX(${d ? 0 : -s}deg) rotateY(${d ? s : 0}deg) translate3d(${u}px, ${m}px, ${g}px)`;
                    if (n <= 1 && n > -1 && (h = 90 * t + 90 * n,
                    r && (h = 90 * -t - 90 * n)),
                    e.transform(v),
                    l.slideShadows) {
                        let t = d ? e.find(".swiper-slide-shadow-left") : e.find(".swiper-slide-shadow-top")
                          , s = d ? e.find(".swiper-slide-shadow-right") : e.find(".swiper-slide-shadow-bottom");
                        0 === t.length && (t = c(`<div class="swiper-slide-shadow-${d ? "left" : "top"}"></div>`),
                        e.append(t)),
                        0 === s.length && (s = c(`<div class="swiper-slide-shadow-${d ? "right" : "bottom"}"></div>`),
                        e.append(s)),
                        t.length && (t[0].style.opacity = Math.max(-n, 0)),
                        s.length && (s[0].style.opacity = Math.max(n, 0))
                    }
                }
                if (s.css({
                    "-webkit-transform-origin": `50% 50% -${o / 2}px`,
                    "-moz-transform-origin": `50% 50% -${o / 2}px`,
                    "-ms-transform-origin": `50% 50% -${o / 2}px`,
                    "transform-origin": `50% 50% -${o / 2}px`
                }),
                l.shadow)
                    if (d)
                        u.transform(`translate3d(0px, ${i / 2 + l.shadowOffset}px, ${-i / 2}px) rotateX(90deg) rotateZ(0deg) scale(${l.shadowScale})`);
                    else {
                        const e = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90)
                          , t = 1.5 - (Math.sin(2 * e * Math.PI / 360) / 2 + Math.cos(2 * e * Math.PI / 360) / 2)
                          , s = l.shadowScale
                          , a = l.shadowScale / t
                          , i = l.shadowOffset;
                        u.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${n / 2 + i}px, ${-n / 2 / a}px) rotateX(-90deg)`)
                    }
                const m = gt.isSafari || gt.isWebView ? -o / 2 : 0;
                s.transform(`translate3d(0px,0,${m}px) rotateX(${e.isHorizontal() ? 0 : h}deg) rotateY(${e.isHorizontal() ? -h : 0}deg)`)
            },
            setTransition(e) {
                const t = this
                  , {$el: s, slides: a} = t;
                a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
                t.params.cubeEffect.shadow && !t.isHorizontal() && s.find(".swiper-cube-shadow").transition(e)
            }
        };
        var Qt = {
            name: "effect-cube",
            params: {
                cubeEffect: {
                    slideShadows: !0,
                    shadow: !0,
                    shadowOffset: 20,
                    shadowScale: .94
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    cubeEffect: {
                        setTranslate: Zt.setTranslate.bind(e),
                        setTransition: Zt.setTransition.bind(e)
                    }
                })
            },
            on: {
                beforeInit() {
                    const e = this;
                    if ("cube" !== e.params.effect)
                        return;
                    e.classNames.push(e.params.containerModifierClass + "cube"),
                    e.classNames.push(e.params.containerModifierClass + "3d");
                    const t = {
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerGroup: 1,
                        watchSlidesProgress: !0,
                        resistanceRatio: 0,
                        spaceBetween: 0,
                        centeredSlides: !1,
                        virtualTranslate: !0
                    };
                    J.extend(e.params, t),
                    J.extend(e.originalParams, t)
                },
                setTranslate() {
                    const e = this;
                    "cube" === e.params.effect && e.cubeEffect.setTranslate()
                },
                setTransition(e) {
                    const t = this;
                    "cube" === t.params.effect && t.cubeEffect.setTransition(e)
                }
            }
        };
        const es = {
            setTranslate() {
                const e = this
                  , {slides: t, rtlTranslate: s} = e;
                for (let a = 0; a < t.length; a += 1) {
                    const i = t.eq(a);
                    let n = i[0].progress;
                    e.params.flipEffect.limitRotation && (n = Math.max(Math.min(i[0].progress, 1), -1));
                    const r = i[0].swiperSlideOffset
                      , o = -180 * n;
                    let l = o
                      , d = 0
                      , p = -r
                      , u = 0;
                    if (e.isHorizontal() ? s && (l = -l) : (u = p,
                    p = 0,
                    d = -l,
                    l = 0),
                    i[0].style.zIndex = -Math.abs(Math.round(n)) + t.length,
                    e.params.flipEffect.slideShadows) {
                        let t = e.isHorizontal() ? i.find(".swiper-slide-shadow-left") : i.find(".swiper-slide-shadow-top")
                          , s = e.isHorizontal() ? i.find(".swiper-slide-shadow-right") : i.find(".swiper-slide-shadow-bottom");
                        0 === t.length && (t = c(`<div class="swiper-slide-shadow-${e.isHorizontal() ? "left" : "top"}"></div>`),
                        i.append(t)),
                        0 === s.length && (s = c(`<div class="swiper-slide-shadow-${e.isHorizontal() ? "right" : "bottom"}"></div>`),
                        i.append(s)),
                        t.length && (t[0].style.opacity = Math.max(-n, 0)),
                        s.length && (s[0].style.opacity = Math.max(n, 0))
                    }
                    i.transform(`translate3d(${p}px, ${u}px, 0px) rotateX(${d}deg) rotateY(${l}deg)`)
                }
            },
            setTransition(e) {
                const t = this
                  , {slides: s, activeIndex: a, $wrapperEl: i} = t;
                if (s.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
                t.params.virtualTranslate && 0 !== e) {
                    let e = !1;
                    s.eq(a).transitionEnd((function() {
                        if (e)
                            return;
                        if (!t || t.destroyed)
                            return;
                        e = !0,
                        t.animating = !1;
                        const s = ["webkitTransitionEnd", "transitionend"];
                        for (let e = 0; e < s.length; e += 1)
                            i.trigger(s[e])
                    }
                    ))
                }
            }
        };
        var ts = {
            name: "effect-flip",
            params: {
                flipEffect: {
                    slideShadows: !0,
                    limitRotation: !0
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    flipEffect: {
                        setTranslate: es.setTranslate.bind(e),
                        setTransition: es.setTransition.bind(e)
                    }
                })
            },
            on: {
                beforeInit() {
                    const e = this;
                    if ("flip" !== e.params.effect)
                        return;
                    e.classNames.push(e.params.containerModifierClass + "flip"),
                    e.classNames.push(e.params.containerModifierClass + "3d");
                    const t = {
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerGroup: 1,
                        watchSlidesProgress: !0,
                        spaceBetween: 0,
                        virtualTranslate: !0
                    };
                    J.extend(e.params, t),
                    J.extend(e.originalParams, t)
                },
                setTranslate() {
                    const e = this;
                    "flip" === e.params.effect && e.flipEffect.setTranslate()
                },
                setTransition(e) {
                    const t = this;
                    "flip" === t.params.effect && t.flipEffect.setTransition(e)
                }
            }
        };
        const ss = {
            setTranslate() {
                const e = this
                  , {width: t, height: s, slides: a, $wrapperEl: i, slidesSizesGrid: n} = e
                  , r = e.params.coverflowEffect
                  , o = e.isHorizontal()
                  , l = e.translate
                  , d = o ? t / 2 - l : s / 2 - l
                  , p = o ? r.rotate : -r.rotate
                  , u = r.depth;
                for (let h = 0, m = a.length; h < m; h += 1) {
                    const e = a.eq(h)
                      , t = n[h]
                      , s = e[0].swiperSlideOffset
                      , i = (d - s - t / 2) / t * r.modifier;
                    let l = o ? p * i : 0
                      , m = o ? 0 : p * i
                      , f = -u * Math.abs(i)
                      , g = r.stretch;
                    "string" === typeof g && -1 !== g.indexOf("%") && (g = parseFloat(r.stretch) / 100 * t);
                    let v = o ? 0 : g * i
                      , b = o ? g * i : 0
                      , y = 1 - (1 - r.scale) * Math.abs(i);
                    Math.abs(b) < .001 && (b = 0),
                    Math.abs(v) < .001 && (v = 0),
                    Math.abs(f) < .001 && (f = 0),
                    Math.abs(l) < .001 && (l = 0),
                    Math.abs(m) < .001 && (m = 0),
                    Math.abs(y) < .001 && (y = 0);
                    const w = `translate3d(${b}px,${v}px,${f}px)  rotateX(${m}deg) rotateY(${l}deg) scale(${y})`;
                    if (e.transform(w),
                    e[0].style.zIndex = 1 - Math.abs(Math.round(i)),
                    r.slideShadows) {
                        let t = o ? e.find(".swiper-slide-shadow-left") : e.find(".swiper-slide-shadow-top")
                          , s = o ? e.find(".swiper-slide-shadow-right") : e.find(".swiper-slide-shadow-bottom");
                        0 === t.length && (t = c(`<div class="swiper-slide-shadow-${o ? "left" : "top"}"></div>`),
                        e.append(t)),
                        0 === s.length && (s = c(`<div class="swiper-slide-shadow-${o ? "right" : "bottom"}"></div>`),
                        e.append(s)),
                        t.length && (t[0].style.opacity = i > 0 ? i : 0),
                        s.length && (s[0].style.opacity = -i > 0 ? -i : 0)
                    }
                }
                if (Z.pointerEvents || Z.prefixedPointerEvents) {
                    const e = i[0].style;
                    e.perspectiveOrigin = d + "px 50%"
                }
            },
            setTransition(e) {
                const t = this;
                t.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)
            }
        };
        var as = {
            name: "effect-coverflow",
            params: {
                coverflowEffect: {
                    rotate: 50,
                    stretch: 0,
                    depth: 100,
                    scale: 1,
                    modifier: 1,
                    slideShadows: !0
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    coverflowEffect: {
                        setTranslate: ss.setTranslate.bind(e),
                        setTransition: ss.setTransition.bind(e)
                    }
                })
            },
            on: {
                beforeInit() {
                    const e = this;
                    "coverflow" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "coverflow"),
                    e.classNames.push(e.params.containerModifierClass + "3d"),
                    e.params.watchSlidesProgress = !0,
                    e.originalParams.watchSlidesProgress = !0)
                },
                setTranslate() {
                    const e = this;
                    "coverflow" === e.params.effect && e.coverflowEffect.setTranslate()
                },
                setTransition(e) {
                    const t = this;
                    "coverflow" === t.params.effect && t.coverflowEffect.setTransition(e)
                }
            }
        };
        const is = {
            init() {
                const e = this
                  , {thumbs: t} = e.params
                  , s = e.constructor;
                t.swiper instanceof s ? (e.thumbs.swiper = t.swiper,
                J.extend(e.thumbs.swiper.originalParams, {
                    watchSlidesProgress: !0,
                    slideToClickedSlide: !1
                }),
                J.extend(e.thumbs.swiper.params, {
                    watchSlidesProgress: !0,
                    slideToClickedSlide: !1
                })) : J.isObject(t.swiper) && (e.thumbs.swiper = new s(J.extend({}, t.swiper, {
                    watchSlidesVisibility: !0,
                    watchSlidesProgress: !0,
                    slideToClickedSlide: !1
                })),
                e.thumbs.swiperCreated = !0),
                e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),
                e.thumbs.swiper.on("tap", e.thumbs.onThumbClick)
            },
            onThumbClick() {
                const e = this
                  , t = e.thumbs.swiper;
                if (!t)
                    return;
                const s = t.clickedIndex
                  , a = t.clickedSlide;
                if (a && c(a).hasClass(e.params.thumbs.slideThumbActiveClass))
                    return;
                if ("undefined" === typeof s || null === s)
                    return;
                let i;
                if (i = t.params.loop ? parseInt(c(t.clickedSlide).attr("data-swiper-slide-index"), 10) : s,
                e.params.loop) {
                    let t = e.activeIndex;
                    e.slides.eq(t).hasClass(e.params.slideDuplicateClass) && (e.loopFix(),
                    e._clientLeft = e.$wrapperEl[0].clientLeft,
                    t = e.activeIndex);
                    const s = e.slides.eq(t).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index()
                      , a = e.slides.eq(t).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();
                    i = "undefined" === typeof s ? a : "undefined" === typeof a ? s : a - t < t - s ? a : s
                }
                e.slideTo(i)
            },
            update(e) {
                const t = this
                  , s = t.thumbs.swiper;
                if (!s)
                    return;
                const a = "auto" === s.params.slidesPerView ? s.slidesPerViewDynamic() : s.params.slidesPerView
                  , i = t.params.thumbs.autoScrollOffset
                  , n = i && !s.params.loop;
                if (t.realIndex !== s.realIndex || n) {
                    let r, o, l = s.activeIndex;
                    if (s.params.loop) {
                        s.slides.eq(l).hasClass(s.params.slideDuplicateClass) && (s.loopFix(),
                        s._clientLeft = s.$wrapperEl[0].clientLeft,
                        l = s.activeIndex);
                        const e = s.slides.eq(l).prevAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index()
                          , a = s.slides.eq(l).nextAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index();
                        r = "undefined" === typeof e ? a : "undefined" === typeof a ? e : a - l === l - e ? l : a - l < l - e ? a : e,
                        o = t.activeIndex > t.previousIndex ? "next" : "prev"
                    } else
                        r = t.realIndex,
                        o = r > t.previousIndex ? "next" : "prev";
                    n && (r += "next" === o ? i : -1 * i),
                    s.visibleSlidesIndexes && s.visibleSlidesIndexes.indexOf(r) < 0 && (s.params.centeredSlides ? r = r > l ? r - Math.floor(a / 2) + 1 : r + Math.floor(a / 2) - 1 : r > l && (r = r - a + 1),
                    s.slideTo(r, e ? 0 : void 0))
                }
                let r = 1;
                const o = t.params.thumbs.slideThumbActiveClass;
                if (t.params.slidesPerView > 1 && !t.params.centeredSlides && (r = t.params.slidesPerView),
                t.params.thumbs.multipleActiveThumbs || (r = 1),
                r = Math.floor(r),
                s.slides.removeClass(o),
                s.params.loop || s.params.virtual && s.params.virtual.enabled)
                    for (let l = 0; l < r; l += 1)
                        s.$wrapperEl.children(`[data-swiper-slide-index="${t.realIndex + l}"]`).addClass(o);
                else
                    for (let l = 0; l < r; l += 1)
                        s.slides.eq(t.realIndex + l).addClass(o)
            }
        };
        var ns = {
            name: "thumbs",
            params: {
                thumbs: {
                    swiper: null,
                    multipleActiveThumbs: !0,
                    autoScrollOffset: 0,
                    slideThumbActiveClass: "swiper-slide-thumb-active",
                    thumbsContainerClass: "swiper-container-thumbs"
                }
            },
            create() {
                const e = this;
                J.extend(e, {
                    thumbs: {
                        swiper: null,
                        init: is.init.bind(e),
                        update: is.update.bind(e),
                        onThumbClick: is.onThumbClick.bind(e)
                    }
                })
            },
            on: {
                beforeInit() {
                    const e = this
                      , {thumbs: t} = e.params;
                    t && t.swiper && (e.thumbs.init(),
                    e.thumbs.update(!0))
                },
                slideChange() {
                    const e = this;
                    e.thumbs.swiper && e.thumbs.update()
                },
                update() {
                    const e = this;
                    e.thumbs.swiper && e.thumbs.update()
                },
                resize() {
                    const e = this;
                    e.thumbs.swiper && e.thumbs.update()
                },
                observerUpdate() {
                    const e = this;
                    e.thumbs.swiper && e.thumbs.update()
                },
                setTransition(e) {
                    const t = this
                      , s = t.thumbs.swiper;
                    s && s.setTransition(e)
                },
                beforeDestroy() {
                    const e = this
                      , t = e.thumbs.swiper;
                    t && e.thumbs.swiperCreated && t && t.destroy()
                }
            }
        };
        const rs = [mt, ft, vt, bt, wt, Et, St, Mt, kt, Lt, Ot, At, Nt, Bt, Vt, Ft, Rt, jt, Kt, Jt, Qt, ts, as, ns];
        "undefined" === typeof ht.use && (ht.use = ht.Class.use,
        ht.installModule = ht.Class.installModule),
        ht.use(rs);
        t["a"] = ht
    }
}]);
